Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Classe PrincipalPermission

Permite que verificações de ativo principal (consulte IPrincipal) usando as construções de linguagem definidas para ambas as ações de segurança imperativas e declarativas. Esta classe não pode ser herdada.

System.Object
  System.Security.Permissions.PrincipalPermission

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

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

O tipo PrincipalPermission expõe os membros a seguir.

  NomeDescrição
Método públicoPrincipalPermission(PermissionState)Inicializa uma nova instância do PrincipalPermission classe com o especificado PermissionState.
Método públicoPrincipalPermission(String, String)Inicializa uma nova instância do PrincipalPermission classe especificado name e role.
Método públicoPrincipalPermission(String, String, Boolean)Inicializa uma nova instância do PrincipalPermission classe especificado name, rolee o status de autenticação.
Superior

  NomeDescrição
Método públicoCopyCria e retorna uma cópia idêntica da permissão atual.
Método públicoDemandDetermina em tempo de execução se o objeto atual corresponde a entidade especificada pela permissão atual.
Método públicoEqualsDetermina se o especificado PrincipalPermission objeto é igual a atual PrincipalPermission. (Substitui Object.Equals(Object).)
Método públicoFromXmlReconstrói uma permissão com um estado especificado de uma codificação XML.
Método públicoGetHashCodeObtém um código de hash para o PrincipalPermission objeto é adequado para uso em hash algoritmos e estruturas de dados como uma tabela de hash. (Substitui Object.GetHashCode().)
Método públicoGetType Obtém o Type da instância atual. (Herdado de Object.)
Método públicoIntersectCria e retorna uma permissão que é a interseção da permissão atual e a permissão especificada.
Método públicoIsSubsetOfDetermina se a permissão atual é um subconjunto da permissão especificado.
Método públicoIsUnrestrictedRetorna um valor indicando se a permissão atual é irrestrita.
Método públicoToStringCria e retorna um string que representa a permissão atual. (Substitui Object.ToString().)
Método públicoToXmlCria uma codificação de XML da permissão e seu estado atual.
Método públicoUnionCria uma permissão que é a união da permissão atual e a permissão especificada.
Superior

Passando informações de identidade (nome de usuário e função) para o construtor PrincipalPermission pode ser usado para solicitar a identidade do objeto ativo corresponde a essas informações.

Para coincidir com o ativo IPrincipal e associados IIdentity, a identidade especificada e a função devem corresponder. Se null seqüência de caracteres de identidade é usada, ele é interpretado como uma solicitação para coincidir com qualquer identidade. Uso de null seqüência de função corresponderá qualquer função. Por implicação, passando null parâmetro para name ou role para PrincipalPermission corresponderá a identidade e as funções em qualquer IPrincipal. Também é possível construir um PrincipalPermission que determina apenas se o IIdentity representa uma entidade autenticada ou não autenticada. Nesse caso, name e role são ignoradas.

Ao contrário da maioria das outras permissões PrincipalPermission não estende CodeAccessPermission. No entanto,, implementar a IPermission interface. Isso ocorre porque PrincipalPermission não é uma permissão de acesso do código; ou seja, ele não é concedido com base na identidade do assembly em execução. Em vez disso, ele permite que o código executar ações (Demand, Union, Intersecte assim por diante) contra a identidade do usuário atual de maneira consistente com a maneira como essas ações são realizadas para acesso a código e as permissões de identidade do código.

Observação importanteImportante

Antes de uma solicitação de permissão principal é necessário definir diretiva principal do domínio do aplicativo atual para o valor de enumeração WindowsPrincipal. Por padrão, a diretiva de objeto é definida como UnauthenticatedPrincipal. Se você não definir a diretiva de objeto WindowsPrincipal, uma demanda de permissão principal falhará. O código a seguir deve ser executado antes de permissão principal é solicitada:

AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal).

O exemplo a seguir requer que o principal ativo ser um administrador. O name parâmetro é null, que permite que qualquer usuário que seja um administrador para passar a demanda.

ObservaçãoObservação

No Windows Vista, o controle de conta de usuário (UAC) determina os privilégios do usuário. Se você for um membro do grupo Administradores internos, são atribuídos dois tokens de acesso de tempo de execução: um token de acesso de usuário padrão e um token de acesso de administrador. Por padrão, estão na função de usuário padrão. Para executar o código que requer que você seja um administrador, primeiro elevar seus privilégios de usuário padrão para administrador. Você pode fazer isso quando você iniciar um aplicativo clicando no ícone de aplicativo e indicando que você deseja executar 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

Com suporte em: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Com suporte em: 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 (Função Server Core sem suporte), Windows Server 2008 R2 (Função Server Core com suporte com o SP1 ou posterior, Itanium sem suporte)

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte Requisitos do sistema do .NET Framework.

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

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2014 Microsoft