Partilhar via


Como Criar um Objeto WindowsPrincipal

Observação

Este artigo aplica-se ao Windows.

Para obter informações sobre o ASP.NET Core, consulte ASP.NET Core Security.

Existem duas formas de criar um WindowsPrincipal objeto, dependendo se o código tem de realizar repetidamente validação baseada em funções ou apenas uma vez.

Se o código tiver de realizar repetidamente validação baseada em papéis, o primeiro dos procedimentos seguintes gera menos sobrecarga. Quando o código precisa fazer validações baseadas em funções apenas uma vez, pode criar um WindowsPrincipal objeto usando o segundo dos procedimentos seguintes.

Para criar um objeto WindowsPrincipal para validação repetida

  1. Chame o método SetPrincipalPolicy no objeto AppDomain que é retornado pela propriedade estática AppDomain.CurrentDomain, passando ao método um valor de enumeração PrincipalPolicy que indica qual deve ser a nova política. Os valores suportados são NoPrincipal, UnauthenticatedPrincipale WindowsPrincipal. O código seguinte demonstra esta chamada de método.

    AppDomain.CurrentDomain.SetPrincipalPolicy(
        PrincipalPolicy.WindowsPrincipal);
    
    AppDomain.CurrentDomain.SetPrincipalPolicy( _
        PrincipalPolicy.WindowsPrincipal)
    
  2. Depois de definir a política, use a propriedade estática Thread.CurrentPrincipal para recuperar o principal que encapsula o utilizador atual do Windows. Como o tipo de retorno da propriedade é IPrincipal, deve converter o resultado para um tipo WindowsPrincipal. O seguinte código inicializa um novo objeto WindowsPrincipal com o valor do principal associado à thread atual.

    WindowsPrincipal myPrincipal =
        (WindowsPrincipal) Thread.CurrentPrincipal;
    
    Dim myPrincipal As WindowsPrincipal = _
        CType(Thread.CurrentPrincipal, WindowsPrincipal)
    
  3. Quando o objeto principal foi criado, pode usar um dos vários métodos para o validar.

Para criar um objeto WindowsPrincipal para uma única validação

  1. Inicialize um novo WindowsIdentity objeto chamando o método estático WindowsIdentity.GetCurrent , que consulta a conta atual do Windows e coloca informações sobre essa conta no novo objeto identidade criado. O código seguinte cria um novo WindowsIdentity objeto e inicializa-o para o utilizador autenticado atual.

    WindowsIdentity myIdentity = WindowsIdentity.GetCurrent();
    
    Dim myIdentity As WindowsIdentity = WindowsIdentity.GetCurrent()
    
  2. Crie um novo WindowsPrincipal objeto e transmita-lhe o valor do WindowsIdentity objeto criado no passo anterior.

    WindowsPrincipal myPrincipal = new WindowsPrincipal(myIdentity);
    
    Dim myPrincipal As New WindowsPrincipal(myIdentity)
    
  3. Quando o objeto principal foi criado, pode usar um dos vários métodos para o validar.

Consulte também