Compartir a través de


CodeAccessPermission.Assert Método

Definición

Declara que el código de llamada puede tener acceso al recurso protegido por una demanda de permiso a través del código que llama a este método, incluso si los autores de la llamada situados en una posición más alta de la pila no tienen permiso para tener acceso al recurso. El uso de Assert() puede crear problemas de seguridad.

public:
 virtual void Assert();
public void Assert ();
abstract member Assert : unit -> unit
override this.Assert : unit -> unit
Public Sub Assert ()

Implementaciones

Excepciones

El código de llamada no tiene Assertion.

O bien

Ya hay una Assert() activa para el marco actual.

Comentarios

Normalmente, la pila de llamadas se representa como creciente, por lo que los métodos más altos en los métodos de llamada a la pila de llamadas se reducen en la pila de llamadas. La llamada Assert impide que un recorrido de pila se origine en la pila de llamadas continúe con la pila de llamadas más allá del código que llama a este método. Por lo tanto, incluso si los autores de llamadas superiores en la pila de llamadas no tienen los permisos necesarios para acceder a un recurso, pueden seguir accediendo a él a través del código que llama a este método en el permiso necesario. Una aserción solo es efectiva si el código que llama Assert pasa la comprobación de seguridad para el permiso que está afirmando.

La llamada a Assert es efectiva hasta que el código que realiza la llamada vuelve a su llamador. Solo uno Assert puede estar activo en un marco. Un intento de llamar Assert cuando existe un activo Assert en el marco da como resultado un SecurityException. Llame a RevertAssert o RevertAll para quitar un objeto activo Assert.

Assert se omite para un permiso no concedido porque una demanda de ese permiso no se realizará correctamente. Sin embargo, si el código inferior en la pila de llamadas llama Demand a para ese permiso, se produce una SecurityException excepción cuando el recorrido de la pila alcanza el código que intentó llamar Asserta . Esto sucede porque el código al que se llamó Assert no se ha concedido el permiso, aunque lo intentó Assert .

Precaución

Dado que la llamada Assert quita el requisito de que se deba conceder permiso a todo el código de la cadena de llamadas para acceder al recurso especificado, puede abrir problemas de seguridad si se usan incorrectamente o de forma inapropiada. Por lo tanto, debe utilizarse con mucha precaución.

Notas a los desarrolladores de herederos

No se puede invalidar este método.

Se aplica a

Consulte también