Compartilhar via


Como criar um objeto WindowsPrincipal

Observação

Este artigo se aplica ao Windows.

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

Há duas maneiras de criar um WindowsPrincipal objeto, dependendo se o código deve executar repetidamente a validação baseada em função ou deve executá-lo apenas uma vez.

Se o código precisar executar repetidamente a validação baseada em função, o primeiro dos procedimentos a seguir produzirá menos sobrecarga. Quando o código precisa fazer validações baseadas em função apenas uma vez, você pode criar um WindowsPrincipal objeto usando o segundo dos procedimentos a seguir.

Para criar um objeto WindowsPrincipal para validação repetida

  1. Invoque o SetPrincipalPolicy método para o objeto AppDomain que é retornado pela propriedade estática AppDomain.CurrentDomain, passando um valor de enumeração PrincipalPolicy para o método, que indique qual deve ser a nova política. Os valores com suporte são NoPrincipal, UnauthenticatedPrincipal e WindowsPrincipal. O código a seguir demonstra essa chamada de método.

    AppDomain.CurrentDomain.SetPrincipalPolicy(
        PrincipalPolicy.WindowsPrincipal);
    
    AppDomain.CurrentDomain.SetPrincipalPolicy( _
        PrincipalPolicy.WindowsPrincipal)
    
  2. Com a política definida, use a propriedade estática Thread.CurrentPrincipal para recuperar o principal que encapsula o usuário atual do Windows. Como o tipo de retorno da propriedade é IPrincipal, você deve converter o resultado em um tipo WindowsPrincipal. O código a seguir inicializa um novo objeto WindowsPrincipal com o valor do principal associado ao thread atual.

    WindowsPrincipal myPrincipal =
        (WindowsPrincipal) Thread.CurrentPrincipal;
    
    Dim myPrincipal As WindowsPrincipal = _
        CType(Thread.CurrentPrincipal, WindowsPrincipal)
    
  3. Quando o objeto principal tiver sido criado, você poderá usar um dos vários métodos para validá-lo.

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 objeto de identidade recém-criado. O código a seguir cria um novo WindowsIdentity objeto e o inicializa para o usuário autenticado atual.

    WindowsIdentity myIdentity = WindowsIdentity.GetCurrent();
    
    Dim myIdentity As WindowsIdentity = WindowsIdentity.GetCurrent()
    
  2. Crie um novo WindowsPrincipal objeto e passe o valor do WindowsIdentity objeto criado na etapa anterior.

    WindowsPrincipal myPrincipal = new WindowsPrincipal(myIdentity);
    
    Dim myPrincipal As New WindowsPrincipal(myIdentity)
    
  3. Quando o objeto principal tiver sido criado, você poderá usar um dos vários métodos para validá-lo.

Consulte também