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

PrincipalPermission (Clase)

Permite comprobar la entidad de seguridad activa (vea IPrincipal) mediante el uso de las construcciones de lenguaje definidas para acciones de seguridad declarativas e imperativas. Esta clase no puede heredarse.

System.Object
  System.Security.Permissions.PrincipalPermission

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

[SerializableAttribute]
[ComVisibleAttribute(true)]
public sealed class PrincipalPermission : IPermission, 
	IUnrestrictedPermission, ISecurityEncodable

El tipo PrincipalPermission expone los siguientes miembros.

  NombreDescripción
Método públicoPrincipalPermission(PermissionState)Inicializa una nueva instancia de la clase PrincipalPermission con el objeto PermissionState especificado.
Método públicoPrincipalPermission(String, String)Inicializa una nueva instancia de la clase PrincipalPermission para el name y role especificados.
Método públicoPrincipalPermission(String, String, Boolean)Inicializa una nueva instancia de la clase PrincipalPermission para el name, role y estado de autenticación especificados.
Arriba

  NombreDescripción
Método públicoCopyCrea y devuelve una copia idéntica del permiso actual.
Método públicoDemandDetermina en tiempo de ejecución si la entidad de seguridad actual coincide con la entidad de seguridad especificada por el permiso actual.
Método públicoEqualsDetermina si el objeto PrincipalPermission especificado es igual al objeto PrincipalPermission actual. (Invalida a Object.Equals(Object)).
Método públicoFromXmlReconstruye un permiso con un estado especificado a partir de codificación XML.
Método públicoGetHashCodeObtiene un código hash para el objeto PrincipalPermission que sea compatible con los algoritmos hash y estructuras de datos como las tablas hash. (Invalida a Object.GetHashCode()).
Método públicoGetType Obtiene el Type de la instancia actual. (Se hereda de Object).
Método públicoIntersectCrea y devuelve un permiso que es la intersección entre el permiso actual y el permiso especificado.
Método públicoIsSubsetOfDetermina si el permiso actual es un subconjunto del permiso especificado.
Método públicoIsUnrestrictedDevuelve un valor que indica si el permiso actual no tiene restricciones.
Método públicoToStringCrea y devuelve una cadena que representa al permiso actual. (Invalida a Object.ToString()).
Método públicoToXmlCrea una codificación XML del permiso y de su estado actual.
Método públicoUnionCrea un permiso que es la unión del permiso actual y el permiso especificado.
Arriba

Pasando la información de identidad (nombre de usuario y rol) al constructor, PrincipalPermission se puede utilizar para solicitar que coincide con la identidad de la entidad de seguridad activa esta información.

Para hacer coincidir el IPrincipal activo y el IIdentity asociado, tienen que coincidir la identidad y el rol especificado. Si se utiliza la cadena de la identidad de null , se interpreta como una solicitud para hacer coincidir cualquier identidad. El uso de la cadena de null de rol coincidirá con cualquier rol. Implícitamente, pasando el parámetro de null para name o role a PrincipalPermission coincidirá con la identidad y roles en cualquier IPrincipal. También es posible construir PrincipalPermission que únicamente determina si IIdentity representa una entidad autenticada o no autenticados. 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 de 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.

Nota importanteImportante

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

AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal).

El ejemplo siguiente requiere que la entidad de seguridad activa sea un administrador. El parámetro name es null, lo que permite a cualquier usuario que sea administrador pasar la petición.

NotaNota

En Windows Vista, el Control de cuentas de usuario (UAC) determina los privilegios de un usuario. Si es miembro del grupo Administradores integrados, se le asignarán dos símbolos (tokens) de acceso en tiempo de ejecución: un símbolo (token) de acceso de usuario estándar y un símbolo (token) de acceso de administrador. De forma predeterminada, se le asignará el rol de usuario estándar. Para poder ejecutar código que requiera que el usuario sea un administrador, primero deberá elevar el nivel de sus privilegios de usuario estándar a los de administrador. Podrá hacerlo cuando inicie una aplicación haciendo clic con el botón secundario en el icono de la aplicación e indicando que desea ejecutarla como administrador.


using System;
using System.Threading;
using System.Security.Permissions;
using System.Security.Principal;

class SecurityPrincipalDemo
{

    public static void Main()
    {
        AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
        PrincipalPermission principalPerm = new PrincipalPermission(null, "Administrators");
        principalPerm.Demand();
        Console.WriteLine("Demand succeeded.");
    }
}


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

Todos los miembros static (Shared en Visual Basic) públicos 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.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft