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
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)
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)
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 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()
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)
Quando o objeto principal tiver sido criado, você poderá usar um dos vários métodos para validá-lo.