Partilhar via


Como: Criar um objeto WindowsPrincipal

Nota

Este artigo aplica-se ao Windows.

Para obter informações sobre o 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á-la apenas uma vez.

Se o código deve executar repetidamente a validação baseada em função, o primeiro dos procedimentos a seguir produz 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. Chame AppDomain o SetPrincipalPolicy método no objeto que é retornado pela propriedade estáticaAppDomain.CurrentDomain, passando ao método um PrincipalPolicy valor de enumeração que indica qual deve ser a nova política. Os valores suportados são NoPrincipal, UnauthenticatedPrincipale 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 static Thread.CurrentPrincipal para recuperar a entidade de segurança que encapsula o usuário atual do Windows. Como o tipo de retorno de propriedade é IPrincipal, você deve converter o resultado em um WindowsPrincipal tipo. O código a seguir inicializa um novo WindowsPrincipal objeto para o valor da entidade de segurança associada 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, que consulta a conta atual WindowsIdentity.GetCurrent 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-lhe 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