CodeAccessPermission.PermitOnly (Método)

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 a todos los recursos con la excepción del recurso especificado por la instancia actual.

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

public void PermitOnly ()
public final void PermitOnly ()
public final function PermitOnly ()

Tipo de excepciónCondición

SecurityException

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

PermitOnly es similar a Deny, ya que ambos originan un error en los recorridos de pila cuando, en cualquier otro caso, se realizarían correctamente. La diferencia consiste en que Deny especifica los permisos que originan un error en el recorrido por la pila, mientras que PermitOnly especifica los permisos que no originan un error en el recorrido por la pila.

Llame a este método para garantizar que el código puede utilizarse para obtener sólo acceso a los recursos especificados. La llamada a PermitOnly es eficaz hasta que el código de llamada vuelve al llamador. Sólo puede haber un método PermitOnly activo en cada marco. Un intento de llamar a PermitOnly cuando hay otro método PermitOnly activo en el marco da como resultado SecurityException. Se llama a RevertPermitOnly o a RevertAll para quitar un método PermitOnly activo.

Se omite el método PermitOnly para un permiso no concedido, ya que no se realizará correctamente ninguna demanda para ese permiso. No obstante, si hay código situado en la parte inferior de la pila de llamadas que llame a Demand para ese permiso, se produce una excepción SecurityException cuando el recorrido por la pila alcanza el código que intentó llamar a PermitOnly. Esto es debido a que el código que llamó a PermitOnly no dispone del permiso, aunque haya llamado a PermitOnly para dicho permiso. 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.

Notas para los herederos No se puede reemplazar este método.

El ejemplo de código siguiente muestra el uso del método PermitOnly para limitar el acceso a todos los recursos excepto para el recurso especificado por la instancia actual. Este ejemplo de código forma parte de un ejemplo más extenso referente a la clase RevertAll.

// Grant access only to OwnClipboard.
Console.WriteLine("Granting permission only for OwnClipboard access.");
clipboardPermission.PermitOnly();
DemandAllClipboardAccess();
// Revert the PermitOnly with a call to RevertPermitOnly.
Console.WriteLine("Reverting the PermitOnly.");
CodeAccessPermission.RevertPermitOnly();
DemandAllClipboardAccess();

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

.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.

.NET Framework

Compatible con: 2.0, 1.1, 1.0

Adiciones de comunidad

AGREGAR
Mostrar: