Was ist Thread.CurrentPrincipal
? Wie hilft es bei der Authentifizierung und Autorisierung einer Anwendung? Gibt es Artikel oder Ressourcen, die erklären, was es tut?Was ist Thread.CurrentPrincipal und was macht es?
Antwort
Thread.CurrentPrincipal
ist die Art und Weise, in der .NET-Anwendungen die Identität des Benutzers oder Dienstkontos darstellen, das den Prozess ausführt.
Sie kann eine oder mehrere Identitäten enthalten und ermöglicht es der Anwendung, über die Methode IsInRole
zu überprüfen, ob der Prinzipal in einer Rolle ist.
Die meisten Authentifizierungsbibliotheken in .NET überprüfen die Anmeldeinformationen des Benutzers und legen diese statische Eigenschaft für die Thread-Klasse auf ein neues Prinzipalobjekt fest.
Verschiedene Threads können unterschiedliche Prinzipien haben, da sie Anfragen von verschiedenen Benutzern Handhabung werden können (in ASP.NET Web-Anwendungen HttpContext.User
in Thread.CurrentPrincipal
für jede neue Anforderung kopiert wird)
Da .NET 4.5, alle Hauptklassen ergeben sich aus ClaimsPrincipal
, Aktivierung der anspruchsbasierten Authentifizierung.
UPDATE: Dies ist, was ein Windows wie auf meiner Dev-Box aussieht:
Angenommen, wenn ein Benutzer in die Anwendung angemeldet ist Windows-Authentifizierung verwenden. Wie können wir das Thread.CurrentPrincipal darstellen? Was alles sind Eigenschaften, die es enthält. – user1844634
Der Thread.CurrentPrincipal wird mit einem WindowsPrincipal-Objekt gefüllt. Es enthält unter anderem Ansprüche wie die UPN und Gruppen, denen der Auftraggeber angehört. – MvdD
Könnten Sie bitte etwas mehr bitte – user1844634