Como: criar um objeto WindowsPrincipal
Observação
Este artigo aplica-se ao Windows.
Para obter informações sobre o ASP.NET Core, confira Segurança do ASP.NET Core.
Há duas maneiras de criar um objeto WindowsPrincipal, dependendo de 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 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 objeto WindowsPrincipal usando o segundo dos procedimentos a seguir.
Para criar um objeto WindowsPrincipal para validação repetida
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 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)
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)
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
Inicialize um novo objeto WindowsIdentity 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 objeto WindowsIdentity e o inicializa para o usuário autenticado atual.
WindowsIdentity myIdentity = WindowsIdentity.GetCurrent();
Dim myIdentity As WindowsIdentity = WindowsIdentity.GetCurrent()
Crie um novo objeto WindowsPrincipal e passe a ele o valor do objeto WindowsIdentity criado na etapa anterior.
WindowsPrincipal myPrincipal = new WindowsPrincipal(myIdentity);
Dim myPrincipal As New WindowsPrincipal(myIdentity)
Quando o objeto principal tiver sido criado, você poderá usar um dos vários métodos para validá-lo.