Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Classe PrincipalPermission

 

Permite verificações em relação à entidade de segurança ativa (consulte IPrincipal) usando os constructos de linguagem definidos por ações declarativas e imperativas. Essa classe não pode ser herdada.

Namespace:   System.Security.Permissions
Assembly:  mscorlib (em mscorlib.dll)

System.Object
  System.Security.Permissions.PrincipalPermission

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

NomeDescrição
System_CAPS_pubmethodPrincipalPermission(PermissionState)

Inicializa uma nova instância de PrincipalPermission classe com especificado PermissionState.

System_CAPS_pubmethodPrincipalPermission(String, String)

Inicializa uma nova instância da classe PrincipalPermission para o name e role especificados.

System_CAPS_pubmethodPrincipalPermission(String, String, Boolean)

Inicializa uma nova instância de PrincipalPermission classe especificado name, role, e o status de autenticação.

NomeDescrição
System_CAPS_pubmethodCopy()

Cria e retorna uma cópia idêntica da permissão atual.

System_CAPS_pubmethodDemand()

Determina no tempo de execução se a entidade de segurança atual corresponde à entidade de segurança especificada pela permissão atual.

System_CAPS_pubmethodEquals(Object)

Determina se o especificado PrincipalPermission objeto é igual a atual PrincipalPermission.(Substitui o Object.Equals(Object).)

System_CAPS_pubmethodFromXml(SecurityElement)

Reconstrói uma permissão com um estado de uma codificação de XML especificado.

System_CAPS_pubmethodGetHashCode()

Obtém um código hash para o PrincipalPermission objeto que é adequado para uso em algoritmos e estruturas de dados como uma tabela de hash de hash.(Substitui o Object.GetHashCode().)

System_CAPS_pubmethodGetType()

Obtém o Type da instância atual.(Herdado de Object.)

System_CAPS_pubmethodIntersect(IPermission)

Cria e retorna uma permissão que é a interseção de permissão atual e a permissão especificada.

System_CAPS_pubmethodIsSubsetOf(IPermission)

Determina se a permissão atual é um subconjunto de permissão especificada.

System_CAPS_pubmethodIsUnrestricted()

Retorna um valor que indica se a permissão atual é irrestrita.

System_CAPS_pubmethodToString()

Cria e retorna uma cadeia de caracteres que representa a permissão atual.(Substitui o Object.ToString().)

System_CAPS_pubmethodToXml()

Cria uma codificação de XML de permissão e seu estado atual.

System_CAPS_pubmethodUnion(IPermission)

Cria uma permissão que é a união de permissão atual e a permissão especificada.

By passing identity information (user name and role) to the constructor, T:System.Security.Permissions.PrincipalPermission can be used to demand that the identity of the active principal matches this information.

To match the active T:System.Security.Principal.IPrincipal and associated T:System.Security.Principal.IIdentity, both the specified identity and role must match. If null identity string is used, it is interpreted as a request to match any identity. Use of null role string will match any role. By implication, passing null parameter for name or role to T:System.Security.Permissions.PrincipalPermission will match the identity and roles in any T:System.Security.Principal.IPrincipal. It is also possible to construct a T:System.Security.Permissions.PrincipalPermission that only determines whether the T:System.Security.Principal.IIdentity represents an authenticated or unauthenticated entity. In this case, name and role are ignored.

Unlike most other permissions, T:System.Security.Permissions.PrincipalPermission does not extend T:System.Security.CodeAccessPermission. It does, however, implement the T:System.Security.IPermission interface. This is because T:System.Security.Permissions.PrincipalPermission is not a code access permission; that is, it is not granted based on the identity of the executing assembly. Instead, it allows code to perform actions (M:System.Security.Permissions.PrincipalPermission.Demand, M:System.Security.Permissions.PrincipalPermission.Union(System.Security.IPermission), M:System.Security.Permissions.PrincipalPermission.Intersect(System.Security.IPermission), 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.

System_CAPS_importantImportante

Prior to a demand for principal permission it is necessary to set the current application domain's principal policy to the enumeration value F:System.Security.Principal.PrincipalPolicy.WindowsPrincipal. By default, the principal policy is set to F:System.Security.Principal.PrincipalPolicy.UnauthenticatedPrincipal. If you do not set the principal policy to F:System.Security.Principal.PrincipalPolicy.WindowsPrincipal, a demand for principal permission will fail. The following code should be executed before the principal permission is demanded:

AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal).

The following example requires the active principal to be an administrator. The name parameter is null, which enables any user who is an administrator to pass the demand.

System_CAPS_noteObservação

In Windows Vista, User Account Control (UAC) determines the privileges of a user. 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. By default, you are in the standard user role. To execute the code that requires you to be an administrator, you must first elevate your privileges from standard user to administrator. 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 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
Disponível desde 1.1

Quaisquer membros estáticos públicos ( Compartilhado no Visual Basic) desse tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Retornar ao início
Mostrar: