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.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)

abstract PermitOnly : unit -> unit 
override PermitOnly : unit -> unit 

Implementaciones

IStackWalk.PermitOnly()

ExcepciónCondición
SecurityException

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

Nota importanteImportante

El método PermitOnly 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 PermitOnly para un permiso y, a continuación, llama al método B, el método B puede invalidar abiertamente PermitOnly 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 PermitOnly que el método A (el método de llamada) colocó en la pila no se detectará nunca.

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 está en que Deny especifica los permisos que originan un error en el recorrido por la pila, mientras que PermitOnly especifica únicamente los que no lo originan.

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.

El método PermitOnly de un permiso no concedido se pasará por alto, pues ninguna demanda para ese permiso podrá tener éxito. 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.

.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