CodeAccessPermission.Assert Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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();
public void Assert ();
[System.Diagnostics.Conditional("FEATURE_MONO_CAS")]
public void Assert ();
abstract member Assert : unit -> unit
override this.Assert : unit -> unit
[<System.Diagnostics.Conditional("FEATURE_MONO_CAS")>]
member this.Assert : unit -> unit
Public Sub Assert ()
Implementaciones
- Atributos
Excepciones
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 de la pila de llamadas se reducen en la pila de llamadas. Llamar Assert evita 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 más altos en la pila de llamadas no tienen los permisos necesarios para acceder a un recurso, todavía pueden acceder 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 de 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 RevertAssert a 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 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 debe 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.