SafeHandle.DangerousGetHandle Metodo

Definizione

Restituisce il valore del campo handle.

public:
 IntPtr DangerousGetHandle();
public IntPtr DangerousGetHandle ();
member this.DangerousGetHandle : unit -> nativeint
Public Function DangerousGetHandle () As IntPtr

Restituisce

IntPtr

nativeint

Valore IntPtr che rappresenta il valore del campo handle. Se l'handle è stato contrassegnato come non valido con SetHandleAsInvalid(), questo metodo restituisce comunque il valore di handle originale, che può essere un valore non aggiornato.

Commenti

È possibile usare questo metodo per recuperare il valore di handle effettivo da un'istanza della SafeHandle classe derivata. Questo metodo è necessario per la compatibilità con le versioni precedenti perché molte proprietà nei tipi di handle restituiti IntPtr di .NET Framework. IntPtr i tipi di handle sono tipi specifici della piattaforma usati per rappresentare un puntatore o un handle.

Attenzione

L'uso del DangerousGetHandle metodo può rappresentare rischi di sicurezza perché, se l'handle è stato contrassegnato come non valido con SetHandleAsInvalid, DangerousGetHandle restituisce comunque il valore di handle originale potenzialmente non aggiornato. Il handle restituito può essere riciclato anche in qualsiasi momento. Al meglio, questo significa che l'handle potrebbe arrestare improvvisamente il lavoro. In caso contrario, se l'handle o la risorsa rappresentata dall'handle sono esposti al codice non attendibile, ciò può causare un attacco di sicurezza di riciclo sulla gestione riutilizzata o restituita. Ad esempio, un chiamante non attendibile può eseguire query sui dati sull'handle appena restituito e ricevere informazioni per una risorsa completamente non correlata. Vedere e i DangerousAddRefDangerousRelease metodi per altre informazioni sull'uso del DangerousGetHandle metodo in modo sicuro.

Si applica a