Compartir a través de


SafeHandle.DangerousGetHandle Método

Definición

Devuelve el valor del campo handle.

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

Devoluciones

IntPtr

nativeint

IntPtr que representa el valor del campo handle. Si el identificador se ha marcado como no válido con SetHandleAsInvalid(), este método todavía devuelve el valor del identificador original, que puede ser un valor obsoleto.

Comentarios

Puede usar este método para recuperar el valor de identificador real de una instancia de la SafeHandle clase derivada. Este método es necesario para la compatibilidad con versiones anteriores porque muchas propiedades de .NET Framework devuelven IntPtr tipos de identificador. IntPtr los tipos de identificador son tipos específicos de la plataforma que se usan para representar un puntero o un identificador.

Precaución

El uso del DangerousGetHandle método puede suponer riesgos de seguridad porque, si el identificador se ha marcado como no válido con SetHandleAsInvalid, DangerousGetHandle sigue devuelve el valor de identificador original y potencialmente obsoleto. El asa devuelta también se puede reciclar en cualquier momento. En el mejor de los casos, esto significa que el controlador podría dejar de funcionar de repente. En el peor de los casos, si el identificador o el recurso que representa el identificador se expone al código que no es de confianza, esto puede provocar un ataque de seguridad de reciclaje en el identificador reutilizado o devuelto. Por ejemplo, un autor de llamada que no es de confianza puede consultar datos en el identificador que acaba de devolver y recibir información de un recurso completamente no relacionado. Consulte los DangerousAddRef métodos y DangerousRelease para obtener más información sobre el uso del DangerousGetHandle método de forma segura.

Se aplica a