Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

CodeAccessPermission::Assert (Método)

Declara que el código de llamada puede tener acceso al recurso protegido mediante una petición de permiso a través del código que llama a este método, aunque los llamadores que se encuentran en una posición superior de la pila no dispongan de permiso de acceso al recurso. La utilización de Assert puede crear problemas de seguridad.

Espacio de nombres:  System.Security
Ensamblado:  mscorlib (en mscorlib.dll)

public:
virtual void Assert() sealed

Implementaciones

IStackWalk::Assert()

ExcepciónCondición
SecurityException

El código de llamada no tiene SecurityPermissionFlag::Assertion.

O bien

Ya hay un método Assert activo para el marco actual.

La pila de llamadas suele representarse de forma decreciente, por lo que los métodos que se encuentran en las posiciones superiores de la pila de llamadas, llaman a métodos de las posiciones inferiores. Al llamar a Assert se evita que un recorrido de pila que se origina en la parte inferior ascienda por la pila de llamadas por encima del código que llama a este método. Por consiguiente, incluso si los llamadores situados en la parte superior de la pila de llamadas no tienen permisos para tener acceso a un recurso, aún pueden obtener acceso a través del código que llama a este método en el permiso necesario. Una aserción será efectiva sólo si el código que llama a Assert supera la comprobación de seguridad correspondiente al permiso del que realiza la aserción.

La llamada a Assert es eficaz hasta que el código de llamada vuelve al llamador. Sólo puede haber un método Assert activo en cada marco. Un intento de llamar a Assert cuando hay otro método Assert activo en el marco da como resultado SecurityException. Se llama a RevertAssert o a RevertAll para quitar un método Assert activo.

El método Assert de un permiso no concedido se pasará por alto, pues ninguna demanda para ese permiso podrá tener éxito. Sin embargo, si el código situado más abajo en la pila de llamadas llama a Demand para obtener este permiso, se producirá una excepción SecurityException cuando el recorrido de la pila llegue al código que trató de llamar a Assert. Esto sucede porque el código que llamó a Assert no dispone de permiso, aunque intentó realizar una aserción Assert.

Nota de precauciónPrecaución

Al llamar a Assert desaparece el requisito de que todo el código de la cadena de llamadas deba disponer de permiso para obtener acceso al recurso especificado, lo cual puede provocar problemas de seguridad si se utiliza incorrecta o inapropiadamente. Por ello, es preciso que se utilice con gran precaución.

Notas para los herederos

No se puede reemplazar este método.

.NET Framework

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft