Evaluar y enviar comentarios
Contraer todo/Expandir todo Contraer todo
Esta página es específica de
Microsoft Visual Studio 2005/.NET Framework 2.0

Hay además otras versiones disponibles para:
Biblioteca de clases de .NET Framework
PrincipalPermission (Clase)

Permite comprobar el principal activo (vea IPrincipal) mediante el uso de las construcciones de lenguaje definidas para acciones de seguridad declarativas e imperativas. No se puede heredar esta clase.

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

Visual Basic (Declaración)
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public NotInheritable Class PrincipalPermission
    Implements IPermission, IUnrestrictedPermission, ISecurityEncodable
Visual Basic (Uso)
Dim instance As PrincipalPermission
C#
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public sealed class PrincipalPermission : IPermission, IUnrestrictedPermission, ISecurityEncodable
C++
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public ref class PrincipalPermission sealed : IPermission, IUnrestrictedPermission, ISecurityEncodable
J#
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public final class PrincipalPermission implements IPermission, IUnrestrictedPermission, 
    ISecurityEncodable
JScript
SerializableAttribute 
ComVisibleAttribute(true) 
public final class PrincipalPermission implements IPermission, IUnrestrictedPermission, 
    ISecurityEncodable

Mediante el paso de información de identidad (nombre de usuario y función) al constructor, PrincipalPermission se puede utilizar para solicitar que la identidad del principal activo coincida con esta información.

Para hacer coincidir el IPrincipal activo y el IIdentity asociado, tienen que coincidir la identidad y la función especificadas. Si se utiliza la cadena de identidad referencia de objeto null (Nothing en Visual Basic), se interpreta como una solicitud para que coincida cualquier identidad. El uso de la cadena de función referencia de objeto null (Nothing en Visual Basic) coincidirá con cualquier función. En consecuencia, el paso de un parámetro referencia de objeto null (Nothing en Visual Basic) para name o role a PrincipalPermission hará coincidir la identidad y las funciones de cualquier IPrincipal. También es posible crear un objeto PrincipalPermission que determine solamente si IIdentity representa una entidad autenticada o no autenticada. En este caso, se omiten name y role.

A diferencia de la mayoría de los demás permisos, PrincipalPermission no extiende CodeAccessPermission. Sin embargo, implementa la interfaz IPermission. Esto sucede debido a que PrincipalPermission no es un permiso de acceso a código; es decir, no está garantizado de acuerdo con la identidad del ensamblado que se esté ejecutando. En su lugar, permite al código realizar acciones (Demand, Union, Intersect, etc.) con la identidad del usuario actual de una forma coherente con la manera en que se realizan esas acciones para los permisos de identidad de código y acceso a código.

NotaImportante:

Antes de realizar una petición de permiso principal es necesario establecer la directiva principal del dominio de aplicación en el valor de enumeración WindowsPrincipal. De forma predeterminada, la directiva principal se establece en UnauthenticatedPrincipal. Si no se establece la directiva principal en WindowsPrincipal, la petición de permiso principal dará un error. Antes de que se produzca la petición, debería ejecutarse el siguiente código:

AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal).

En el ejemplo de código siguiente se crean dos objetos PrincipalPermission que representan dos usuarios administrativos distintos, se forma la unión de dos y se realiza una petición. Demand tendrá éxito sólo si la implementación activa de IPrincipal representa al usuario Bob en el papel de Director o al usuario Louise en el papel de Supervisor.

Visual Basic
Dim id1 As String = "Bob"
Dim role1 As String = "Manager"
Dim PrincipalPerm1 As New PrincipalPermission(id1, role1)
       
Dim id2 As String = "Louise"
Dim role2 As String = "Supervisor"
Dim PrincipalPerm2 As New PrincipalPermission(id2, role2)
       
PrincipalPerm1.Union(PrincipalPerm2).Demand()
C#
String id1 = "Bob";
String role1 = "Manager";
PrincipalPermission PrincipalPerm1 = new PrincipalPermission(id1, role1);

String id2 = "Louise";
String role2 = "Supervisor";
PrincipalPermission PrincipalPerm2 = new PrincipalPermission(id2, role2);

(PrincipalPerm1.Union(PrincipalPerm2)).Demand();
C++
String^ id1 = "Bob";
String^ role1 = "Manager";
PrincipalPermission^ PrincipalPerm1 = gcnew PrincipalPermission( id1,role1 );

String^ id2 = "Louise";
String^ role2 = "Supervisor";
PrincipalPermission^ PrincipalPerm2 = gcnew PrincipalPermission( id2,role2 );

(PrincipalPerm1->Union( PrincipalPerm2 ))->Demand();
J#
String id1 = "Bob";
String role1 = "Manager";
PrincipalPermission principalPerm1 = new PrincipalPermission(id1,
    role1);
String id2 = "Louise";
String role2 = "Supervisor";
PrincipalPermission principalPerm2 = new PrincipalPermission(id2,
    role2);
principalPerm1.Union(principalPerm2).Demand();
System.Object
  System.Security.Permissions.PrincipalPermission
Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

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
Contenido de la comunidad   ¿Qué es Community Content?
Agregar contenido nuevo RSS  Anotaciones
Processing
© 2009 Microsoft Corporation. Reservados todos los derechos. Términos de uso | Marcas Registradas | Privacidad
Page view tracker