Dela via


Gör så här: Skapa ett WindowsPrincipal-objekt

Kommentar

Den här artikeln gäller för Windows.

Information om ASP.NET Core finns i ASP.NET Core Security.

Det finns två sätt att skapa ett WindowsPrincipal objekt, beroende på om kod upprepade gånger måste utföra rollbaserad validering eller bara utföra det en gång.

Om koden upprepade gånger måste utföra rollbaserad validering ger den första av följande procedurer mindre omkostnader. När kod bara behöver göra rollbaserade valideringar en gång kan du skapa ett WindowsPrincipal objekt med hjälp av den andra av följande procedurer.

Skapa ett WindowsPrincipal-objekt för upprepad validering

  1. SetPrincipalPolicy Anropa metoden för objektet AppDomain som returneras av den statiska AppDomain.CurrentDomain egenskapen och skicka metoden ett PrincipalPolicy uppräkningsvärde som anger vad den nya principen ska vara. Värden som stöds är NoPrincipal, UnauthenticatedPrincipaloch WindowsPrincipal. Följande kod visar det här metodanropet.

    AppDomain.CurrentDomain.SetPrincipalPolicy(  
        PrincipalPolicy.WindowsPrincipal);  
    
    AppDomain.CurrentDomain.SetPrincipalPolicy( _  
        PrincipalPolicy.WindowsPrincipal)  
    
  2. Med principuppsättningen använder du den statiska Thread.CurrentPrincipal egenskapen för att hämta det huvudnamn som kapslar in den aktuella Windows-användaren. Eftersom egenskapens returtyp är IPrincipalmåste du omvandla resultatet till en WindowsPrincipal typ. Följande kod initierar ett nytt WindowsPrincipal objekt till värdet för det huvudnamn som är associerat med den aktuella tråden.

    WindowsPrincipal myPrincipal =
        (WindowsPrincipal) Thread.CurrentPrincipal;  
    
    Dim myPrincipal As WindowsPrincipal = _  
        CType(Thread.CurrentPrincipal, WindowsPrincipal)
    
  3. När huvudobjektet har skapats kan du använda någon av flera metoder för att verifiera det.

Så här skapar du ett WindowsPrincipal-objekt för en enda validering

  1. Initiera ett nytt WindowsIdentity objekt genom att anropa den statiska WindowsIdentity.GetCurrent metoden, som frågar det aktuella Windows-kontot och placerar information om det kontot i det nyligen skapade identitetsobjektet. Följande kod skapar ett nytt WindowsIdentity objekt och initierar det till den aktuella autentiserade användaren.

    WindowsIdentity myIdentity = WindowsIdentity.GetCurrent();  
    
    Dim myIdentity As WindowsIdentity = WindowsIdentity.GetCurrent()  
    
  2. Skapa ett nytt WindowsPrincipal objekt och skicka värdet för det objekt som WindowsIdentity skapades i föregående steg.

    WindowsPrincipal myPrincipal = new WindowsPrincipal(myIdentity);  
    
    Dim myPrincipal As New WindowsPrincipal(myIdentity)  
    
  3. När huvudobjektet har skapats kan du använda någon av flera metoder för att verifiera det.

Se även