PrincipalPermission PrincipalPermission PrincipalPermission PrincipalPermission Class

Definición

Permite comprobar frente a la entidad de seguridad activa (vea IPrincipal) con las construcciones de lenguaje definidas tanto para la acción de seguridad declarativa como la imperativa.Allows checks against the active principal (see IPrincipal) using the language constructs defined for both declarative and imperative security actions. Esta clase no puede heredarse.This class cannot be inherited.

public ref class PrincipalPermission sealed : System::Security::IPermission, System::Security::Permissions::IUnrestrictedPermission
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public sealed class PrincipalPermission : System.Security.IPermission, System.Security.Permissions.IUnrestrictedPermission
type PrincipalPermission = class
    interface IPermission
    interface IUnrestrictedPermission
    interface ISecurityEncodable
Public NotInheritable Class PrincipalPermission
Implements IPermission, IUnrestrictedPermission
Herencia
PrincipalPermissionPrincipalPermissionPrincipalPermissionPrincipalPermission
Atributos
Implementaciones

Ejemplos

El ejemplo siguiente requiere la entidad de seguridad activa sea un administrador.The following example requires the active principal to be an administrator. El name parámetro es null, lo que permite que cualquier usuario que sea administrador pase la petición.The name parameter is null, which enables any user who is an administrator to pass the demand.

Nota

En Windows Vista, el control de cuentas de usuario (UAC) determina los privilegios de un usuario.In Windows Vista, User Account Control (UAC) determines the privileges of a user. 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.If you are a member of the Built-in Administrators group, you are assigned two run-time access tokens: a standard user access token and an administrator access token. De forma predeterminada, se le asignará el rol de usuario estándar.By default, you are in the standard user role. Para ejecutar código que requiere permisos de administrador, primero debe elevar el nivel de sus privilegios de usuario estándar a administrador.To execute the code that requires you to be an administrator, you must first elevate your privileges from standard user to administrator. Para ello, inicie una aplicación haciendo clic con el botón derecho en el icono de la aplicación e indique que desea ejecutarla como administrador.You can do this when you start an application by right-clicking the application icon and indicating that you want to run as an administrator.

using namespace System;
using namespace System::Security;
using namespace System::Security::Permissions;
using namespace System::Security::Policy;
using namespace System::Security::Principal;

int main(array<System::String ^> ^args)
{
	System::String^ null;
	AppDomain::CurrentDomain->SetPrincipalPolicy(PrincipalPolicy::WindowsPrincipal);
	PrincipalPermission^ principalPerm = gcnew PrincipalPermission(null, "Administrators" );
      principalPerm->Demand();
	  Console::WriteLine("Demand succeeded");
    return 0;
}
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.");
    }
}
Imports System
Imports System.Threading
Imports System.Security.Permissions
Imports System.Security.Principal



Class SecurityPrincipalDemo


    Public Shared Sub Main()
        AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal)
        Dim principalPerm As New PrincipalPermission(Nothing, "Administrators")
        principalPerm.Demand()
        Console.WriteLine("Demand succeeded.")

    End Sub 'Main
End Class 'SecurityPrincipalDemo

Comentarios

Al pasar la información de identidad (nombre de usuario y rol) al constructor, PrincipalPermission se puede usar para solicitar que la identidad del principal activo coincida con esta información.By passing identity information (user name and role) to the constructor, PrincipalPermission can be used to demand that the identity of the active principal matches this information.

Para que coincida con el activo IPrincipal y asociado IIdentity, deben coincidir con la identidad especificada y la función.To match the active IPrincipal and associated IIdentity, both the specified identity and role must match. Si null se utiliza la cadena de identidad, se interpreta como una solicitud para que coincida con cualquier identidad.If null identity string is used, it is interpreted as a request to match any identity. El uso de null coincidirá con cualquier función de cadena del rol.Use of null role string will match any role. Por implicación, pasando null parámetro name o role a PrincipalPermission coincidirá con la identidad y los roles en cualquier IPrincipal.By implication, passing null parameter for name or role to PrincipalPermission will match the identity and roles in any IPrincipal. También es posible construir un PrincipalPermission que solo determina si el IIdentity representa una entidad autenticada o no autenticada.It is also possible to construct a PrincipalPermission that only determines whether the IIdentity represents an authenticated or unauthenticated entity. En este caso, name y role se omiten.In this case, name and role are ignored.

A diferencia de otros permisos, PrincipalPermission no se extiende CodeAccessPermission.Unlike most other permissions, PrincipalPermission does not extend CodeAccessPermission. Sin embargo, neimplementuje la IPermission interfaz.It does, however, implement the IPermission interface. Esto es porque PrincipalPermission no es un permiso de acceso del código; es decir, no está garantizado en función de la identidad del ensamblado en ejecución.This is because PrincipalPermission is not a code access permission; that is, it is not granted based on the identity of the executing assembly. En su lugar, permite que el código realizar acciones (Demand, Union, Intersect, etc.) en la identidad del usuario actual de una manera coherente con la forma esas acciones se realizan para el acceso de código y los permisos de identidad del código.Instead, it allows code to perform actions (Demand, Union, Intersect, and so on) against the current user identity in a manner consistent with the way those actions are performed for code access and code identity permissions.

Importante

Antes de una solicitud de permiso principal es necesario establecer la directiva de entidad del dominio de aplicación actual en el valor de enumeración WindowsPrincipal.Prior to a demand for principal permission it is necessary to set the current application domain's principal policy to the enumeration value WindowsPrincipal. De forma predeterminada, la directiva principal se establece en UnauthenticatedPrincipal.By default, the principal policy is set to UnauthenticatedPrincipal. Si no establece la directiva principal en WindowsPrincipal, se producirá un error en una solicitud de permiso de entidad de seguridad.If you do not set the principal policy to WindowsPrincipal, a demand for principal permission will fail. Antes de que se produzca la entidad de seguridad, se debe ejecutar el código siguiente:The following code should be executed before the principal permission is demanded:

AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal).

Constructores

PrincipalPermission(PermissionState) PrincipalPermission(PermissionState) PrincipalPermission(PermissionState) PrincipalPermission(PermissionState)

Inicializa una nueva instancia de la clase PrincipalPermission con el objeto PermissionState especificado.Initializes a new instance of the PrincipalPermission class with the specified PermissionState.

PrincipalPermission(String, String) PrincipalPermission(String, String) PrincipalPermission(String, String) PrincipalPermission(String, String)

Inicializa una nueva instancia de la clase PrincipalPermission para el objeto name y role especificado.Initializes a new instance of the PrincipalPermission class for the specified name and role.

PrincipalPermission(String, String, Boolean) PrincipalPermission(String, String, Boolean) PrincipalPermission(String, String, Boolean) PrincipalPermission(String, String, Boolean)

Inicializa una nueva instancia de la clase PrincipalPermission para los name, role especificados y un estado de autenticación.Initializes a new instance of the PrincipalPermission class for the specified name, role, and authentication status.

Métodos

Copy() Copy() Copy() Copy()

Crea y devuelve una copia idéntica del permiso actual.Creates and returns an identical copy of the current permission.

Demand() Demand() Demand() Demand()

Determina en tiempo de ejecución si el elemento principal actual coincide con la entidad de seguridad especificada por el permiso actual.Determines at run time whether the current principal matches the principal specified by the current permission.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina si el objeto PrincipalPermission especificado es igual al objeto PrincipalPermission actual.Determines whether the specified PrincipalPermission object is equal to the current PrincipalPermission.

FromXml(SecurityElement) FromXml(SecurityElement) FromXml(SecurityElement) FromXml(SecurityElement)

Reconstruye un permiso con un estado especificado a partir de una codificación XML.Reconstructs a permission with a specified state from an XML encoding.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Obtiene un código hash para el objeto PrincipalPermission que es adecuado para su uso en algoritmos hash y estructuras de datos como una tabla hash.Gets a hash code for the PrincipalPermission object that is suitable for use in hashing algorithms and data structures such as a hash table.

GetType() GetType() GetType() GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Inherited from Object)
Intersect(IPermission) Intersect(IPermission) Intersect(IPermission) Intersect(IPermission)

Crea y devuelve un permiso que es la intersección del permiso actual y el permiso especificado.Creates and returns a permission that is the intersection of the current permission and the specified permission.

IsSubsetOf(IPermission) IsSubsetOf(IPermission) IsSubsetOf(IPermission) IsSubsetOf(IPermission)

Determina si el permiso actual es un subconjunto del permiso especificado.Determines whether the current permission is a subset of the specified permission.

IsUnrestricted() IsUnrestricted() IsUnrestricted() IsUnrestricted()

Devuelve un valor que indica si el permiso actual no está restringido.Returns a value indicating whether the current permission is unrestricted.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Crea y devuelve una cadena que representa el permiso actual.Creates and returns a string representing the current permission.

ToXml() ToXml() ToXml() ToXml()

Crea una codificación XML del permiso y su estado actual.Creates an XML encoding of the permission and its current state.

Union(IPermission) Union(IPermission) Union(IPermission) Union(IPermission)

Crea un permiso que es la unión del permiso actual y el permiso especificado.Creates a permission that is the union of the current permission and the specified permission.

Se aplica a

Consulte también: