Freigeben über


Vorgehensweise: Erstellen eines WindowsPrincipal-Objekts

Hinweis

Dieser Artikel gilt für Windows

Informationen zu ASP.NET Core finden Sie unter ASP.NET Core-Sicherheit.

Es gibt zwei Möglichkeiten, ein WindowsPrincipal-Objekt zu erstellen. Diese hängen davon ab, ob Code eine rollenbasierte Validierung mehrfach oder nur einmal ausführen muss.

Wenn Code eine rollenbasierte Validierung mehrfach ausführen muss, verursacht die erste der folgenden Methoden einen geringeren Mehraufwand. Wenn Code eine rollenbasierte Validierung nur einmal ausführen muss, können Sie ein WindowsPrincipal-Objekt mit dem zweiten der folgenden Verfahren erstellen.

So erstellen Sie ein WindowsPrincipal-Objekt für eine mehrfache Validierung

  1. Rufen Sie die SetPrincipalPolicy-Methode für das AppDomain-Objekt auf, das von der statischen AppDomain.CurrentDomain-Eigenschaft zurückgegeben wird, wobei Sie der Methode einen PrincipalPolicy-Enumerationswert übergeben, der die neue Richtlinie angibt. Unterstützte Werte sind NoPrincipal, UnauthenticatedPrincipal und WindowsPrincipal. Im folgenden Code wird dieser Methodenaufruf veranschaulicht.

    AppDomain.CurrentDomain.SetPrincipalPolicy(  
        PrincipalPolicy.WindowsPrincipal);  
    
    AppDomain.CurrentDomain.SetPrincipalPolicy( _  
        PrincipalPolicy.WindowsPrincipal)  
    
  2. Wenn die Richtlinie festgelegt ist, rufen Sie mit der Thread.CurrentPrincipal-Eigenschaft den Prinzipal ab, der den aktuellen Windows-Benutzer kapselt. Da die Eigenschaft den Rückgabetyp IPrincipal hat, müssen Sie das Ergebnis in einen WindowsPrincipal-Typ umwandeln. Im folgenden Code wird ein neues WindowsPrincipal-Objekt mit dem Wert des Prinzipals initialisiert, der dem aktuellen Thread zugeordnet ist.

    WindowsPrincipal myPrincipal =
        (WindowsPrincipal) Thread.CurrentPrincipal;  
    
    Dim myPrincipal As WindowsPrincipal = _  
        CType(Thread.CurrentPrincipal, WindowsPrincipal)
    
  3. Nachdem das Principal-Objekt erstellt wurde, können Sie es mit einer von mehreren Methoden überprüfen.

So erstellen Sie ein WindowsPrincipal-Objekt für eine einzelne Validierung

  1. Initialisieren Sie ein neues WindowsIdentity-Objekt, indem Sie die statische WindowsIdentity.GetCurrent-Methode aufrufen. Diese fragt das aktuelle Windows-Konto ab und legt die Informationen über dieses Konto in dem neu erstellten Identitätsobjekt ab. Der folgende Code erstellt ein neues WindowsIdentity-Objekt und initialisiert es mit dem aktuellen authentifizierten Benutzer.

    WindowsIdentity myIdentity = WindowsIdentity.GetCurrent();  
    
    Dim myIdentity As WindowsIdentity = WindowsIdentity.GetCurrent()  
    
  2. Erstellen Sie ein neues WindowsPrincipal-Objekt, und übergeben Sie an dieses den Wert des im vorherigen Schritt erstellten WindowsIdentity-Objekts.

    WindowsPrincipal myPrincipal = new WindowsPrincipal(myIdentity);  
    
    Dim myPrincipal As New WindowsPrincipal(myIdentity)  
    
  3. Nachdem das Principal-Objekt erstellt wurde, können Sie es mit einer von mehreren Methoden überprüfen.

Siehe auch