Gewusst wie: Erstellen eines WindowsPrincipal-Objekts

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 Aufwand. 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 die mehrfache Validierung

  1. Rufen Sie die SetPrincipalPolicy-Methode für das AppDomain-Objekt auf, das von der statischen AppDomain.CurrentDomain-Eigenschaft zurückgegeben wird, und übergeben Sie die Methode an einen PrincipalPolicy-Enumerationswert, 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 der Rückgabetyp der Eigenschaft IPrincipal ist, 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 Principalobjekt erstellt wurde, können Sie dieses mit verschiedenen Methoden überprüfen. Weitere Informationen finden Sie unter Überprüfungen bei rollenbasierter Sicherheit.

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 Principalobjekt erstellt wurde, können Sie dieses mit verschiedenen Methoden überprüfen. Weitere Informationen finden Sie unter Überprüfungen bei rollenbasierter Sicherheit.

Siehe auch

Konzepte

Principal- und Identitätsobjekte