Exportar (0) Imprimir
Expandir todo

CodeAccessPermission.Deny (Método)

Actualización: Julio de 2008

Evita que los llamadores situados en la parte superior de la pila de llamadas utilicen el código que llama a este método para obtener acceso al recurso especificado por la instancia actual.

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

public void Deny()
public final void Deny()
public final function Deny()

Implementaciones

IStackWalk.Deny()

ExcepciónCondición
SecurityException

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

0ebw73h9.alert_caution(es-es,VS.90).gifNota importante:

El método Deny solo debe usarse para proteger los recursos frente a un acceso accidental por parte del código de plena confianza. No debe usarse para proteger los recursos frente a un uso incorrecto intencionado por parte de código que no es de confianza. Por ejemplo, si el método A emite Deny para un permiso y, a continuación, llama al método B, el método B puede invalidar abiertamente Deny emitiendo Assert. El método al que se llama siempre está situado en la parte superior de la pila. Por lo tanto, si el método B intenta obtener acceso a un recurso protegido, el sistema de seguridad iniciará una comprobación de permisos con él puesto que el método B es el llamador inmediato y, a continuación, se desplazará hacia abajo en la pila para confirmar que no haya ningún Deny o PermitOnly situado por debajo en la pila. El método B, que está intentando obtener acceso al recurso, puede detener inmediatamente el recorrido de pila utilizando el método Assert. En ese caso, el Deny que el método A (el método de llamada) colocó en la pila no se detectará nunca.

Este método impide a los llamadores situados en posiciones superiores en la pila de llamadas el acceso al recurso protegido a través del código que llama a este método, incluso si tienen permiso para obtener dicho acceso. 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.

Deny puede limitar la responsabilidad del programador o ayudar a prevenir problemas de seguridad accidentales, ya que impide el uso del método que llama a Deny para obtener acceso al recurso protegido por el permiso denegado. Si un método llama a Deny en un permiso y si un llamador situado en la parte inferior de la pila de llamadas invoca Demand para ese permiso, dicha comprobación de seguridad devolverá un error al alcanzar el método Deny.

La llamada a Deny es eficaz hasta que el código de llamada vuelve al llamador. Sólo puede haber un método Deny activo en cada marco. Un intento de llamar a Deny cuando hay otro método Deny activo en el marco da como resultado SecurityException. Se llama a RevertDeny o RevertAll para quitar un método Deny activo. El método Deny se omite para un permiso no concedido, ya que no se realizará correctamente ninguna demanda para ese permiso.

Notas para los herederos:

No se puede reemplazar este método.

El ejemplo de código siguiente muestra el uso del método Deny para evitar el acceso al recurso especificado por la instancia actual. Este ejemplo de código forma parte de un ejemplo más extenso referente a la clase RevertAll.

// Create a new UIPermission that allows access only to OwnClipboard.
UIPermission clipboardPermission = new UIPermission(UIPermissionClipboard.OwnClipboard);
// Deny access to OwnClipboard.
Console.WriteLine("Denying access to OwnClipboard");
clipboardPermission.Deny();
// Demand access to files in the specified path.
DemandOwnClipboardAccess();
// Revert the Deny.
Console.WriteLine("Reverting the Deny.");
CodeAccessPermission.RevertDeny();
DemandOwnClipboardAccess();


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0, 2.0, 1.1, 1.0

Fecha

Historial

Motivo

Julio de 2008

Se ha agregado una nota importante sobre el uso recomendado de este método.

Comentarios de los clientes.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft