CodeAccessPermission.Assert CodeAccessPermission.Assert CodeAccessPermission.Assert CodeAccessPermission.Assert Method

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.Declares that the calling code can access the resource protected by a permission demand through the code that calls this method, even if callers higher in the stack have not been granted permission to access the resource. El uso de Assert() puede crear problemas de seguridad.Using Assert() can create security issues.

public:
 void Assert();
[System.Diagnostics.Conditional("FEATURE_MONO_CAS")]
public void Assert ();
member this.Assert : unit -> unit
Public Sub Assert ()

Implementaciones

Excepciones

El código de llamada no tiene Assertion.The calling code does not have Assertion.

o bien-or- Ya hay una Assert() activa para el marco actual.There is already an active Assert() for the current frame.

Comentarios

Normalmente, la pila de llamadas se representa como en constante crecimiento, de modo que los métodos situados más arriba en la pila de llamadas llamen a los métodos situados más abajo en la pila de llamadas.The call stack is typically represented as growing down, so that methods higher in the call stack call methods lower in the call stack. La Assert llamada a impide que un recorrido de pila que se origine en la pila de llamadas continúe en la pila de llamadas más allá del código que llama a este método.Calling Assert prevents a stack walk originating lower in the call stack from proceeding up the call stack beyond the code that calls this method. Por lo tanto, aunque los autores de la llamada situados en una posición más alta de la pila de llamadas no tengan los permisos necesarios para obtener acceso 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.Therefore, even if callers higher on the call stack do not have the requisite permissions to access a resource, they can still access it through the code that calls this method on the necessary permission. Una aserción solo es efectiva si el código que llama Assert pasa la comprobación de seguridad para el permiso que se está validando.An assertion is effective only if the code that calls Assert passes the security check for the permission that it is asserting.

La llamada a Assert es efectiva hasta que el código de llamada vuelve a su llamador.The call to Assert is effective until the calling code returns to its caller. Solo una Assert puede estar activa en un marco.Only one Assert can be active on a frame. Un intento de llamar Assert a cuando existe Assert un activo en el marco da como SecurityExceptionresultado un.An attempt to call Assert when an active Assert exists on the frame results in a SecurityException. Llame RevertAssert a RevertAll o para quitar un Assertactivo.Call RevertAssert or RevertAll to remove an active Assert.

Assertse omite para un permiso no concedido porque una petición para ese permiso no se realizará correctamente.Assert is ignored for a permission not granted because a demand for that permission will not succeed. Sin embargo, si el código inferior de la pila Demand de llamadas llama a para SecurityException ese permiso, se produce una excepción cuando el recorrido de la pila Assertalcanza el código que intentó llamar a.However, if code lower on the call stack calls Demand for that permission, a SecurityException is thrown when the stack walk reaches the code that tried to call Assert. Esto sucede porque el código al que Assert llamó no tiene concedido el permiso, aunque lo Assert intentara.This happens because the code that called Assert has not been granted the permission, even though it tried to Assert it.

Precaución

Dado que Assert la llamada a quita el requisito de que se debe conceder permiso a todo el código de la cadena de llamadas para tener acceso al recurso especificado, se pueden abrir problemas de seguridad si se usan de forma incorrecta o inadecuada.Because calling Assert removes the requirement that all code in the call chain must be granted permission to access the specified resource, it can open up security issues if used incorrectly or inappropriately. Por lo tanto, debe usarse con mucha precaución.Therefore, it should be used with great caution.

Notas a los desarrolladores de herederos

No se puede invalidar este método.You cannot override this method.

Seguridad

SecurityPermission
para la capacidad de llamar Assert()a.for the ability to call Assert(). Enumeración asociada:AssertionAssociated enumeration: Assertion

Se aplica a

Consulte también: