ASP.NET-Identitätsmatrix
Auf dieser Seite
Zielsetzung
Betrifft
Verwendung dieses Moduls
Zusammenfassung
Anonyme IIS-Authentifizierung
IIS-Standardauthentifizierung
IIS-Digestauthentifizierung
In IIS integrierte Windows-Authentifizierung
Zielsetzung
Themenbereiche:
- Kennenlernen der ASP.NET-Identitäten
Betrifft
Die Informationen in diesem Modul gelten für folgende Produkte und Technologien:
Windows 2000 Server 2000 SP3
Microsoft .NET Framework SP2
Microsoft SQL Server 2000 SP2
Verwendung dieses Moduls
Bei diesem Modul handelt es sich um ein Referenzmodul für das Handbuch Erstellen sicherer ASP.NET-Anwendungen. Es enthält ergänzende Informationen, mit denen Sie Ihr Verständnis der in den anderen Modulen in diesem Handbuch vorgestellten Lösungen erweitern können.
Zusammenfassung
Prinzipalobjekte implementieren die IPrincipal-Schnittstelle und repräsentieren den Sicherheitskontext des Benutzers, in dessen Name der Code ausgeführt wird. Das Prinzipalobjekt umfasst die Identität des Benutzers (als hierin enthaltenes IIdentity-Objekt) sowie sämtliche Rollen, denen der Benutzer angehört.
ASP.NET stellt die folgenden Prinzipal- und Identity-Objektimplementierungen bereit:
Die Objekte WindowsPrincipal und WindowsIdentity repräsentieren Benutzer, die mit der Windows-Authentifizierung authentifiziert wurden. Bei diesen Objekten wird die Rollenliste automatisch aus der Reihe der Windows-Gruppen abgerufen, denen der Benutzer angehört.
Die Objekte GenericPrincipal und GenericIdentity repräsentieren Benutzer, die mit der Formularauthentifizierung oder einem anderen benutzerdefinierten Authentifizierungsmechanismus authentifiziert wurden. Bei diesen Objekten wird die Rollenliste benutzerdefiniert abgerufen, in der Regel aus einer Datenbank.
Die Objekte FormsIdentity und PassportIdentity repräsentieren Benutzer, die mit der Formular- bzw. Passport-Authentifizierung authentifiziert wurden.
Die folgenden Tabellen zeigen für eine Reihe von IIS-Authentifizierungseinstellungen die hieraus resultierende Identität, die aus den jeweiligen Variablen abgerufen wird, die ein IPrincipal- und/oder ein IIdentity-Objekt verwalten. In der Tabelle werden die folgenden Abkürzungen verwendet:
HttpContext = HttpContext.Current.User. Gibt ein IPrincipal-Objekt zurück, das Sicherheitsinformationen für die aktuelle Webanforderung enthält. Hierbei handelt es sich um den authentifizierten Webclient.
WindowsIdentity = WindowsIdentity.GetCurrent(). Gibt die Identität des Sicherheitskontexts des aktuell ausgeführten Win32-Threads zurück.
Thread = Thread.CurrentPrincipal. Gibt den Prinzipal des aktuell oberhalb des Win32-Threads ausgeführten .NET-Threads zurück.
Anonyme IIS-Authentifizierung
Web.config-Einstellungen |
Position der Variablen |
Resultierende Identität |
---|---|---|
<identity impersonate="true"/> |
HttpContext |
- |
<identity impersonate="false"/> |
HttpContext |
- |
<identity impersonate="true" /> |
HttpContext |
Benutzerseitig angegebener Name |
<identity impersonate="false"/> |
HttpContext |
Benutzerseitig angegebener Name |
IIS-Standardauthentifizierung
Web.config-Einstellungen |
Position der Variablen |
Resultierende Identität |
---|---|---|
<identity impersonate="true"/> |
HttpContext |
Domain\UserName |
<identity impersonate="false"/> |
HttpContext |
Domain\UserName |
<identity impersonate="true"/> |
HttpContext |
Benutzerseitig angegebener Name |
<identity impersonate="false"/> |
HttpContext |
Benutzerseitig angegebener Name |
IIS-Digestauthentifizierung
Web.config-Einstellungen |
Position der Variablen |
Resultierende Identität |
---|---|---|
<identity impersonate="true"/> |
HttpContext |
Domain\UserName |
<identity impersonate="false"/> |
HttpContext |
Domain\UserName |
<identity impersonate="true"/> |
HttpContext |
Benutzerseitig angegebener Name |
<identity impersonate="false"/> |
HttpContext |
Benutzerseitig angegebener Name |
In IIS integrierte Windows-Authentifizierung
Web.config-Einstellungen |
Position der Variablen |
Resultierende Identität |
---|---|---|
<identity impersonate="true"/> |
HttpContext |
Domain\UserName |
<identity impersonate="false"/> |
HttpContext |
Domain\UserName |
<identity impersonate="true"/> |
HttpContext |
Benutzerseitig angegebener Name |
<identity impersonate="false"/> |
HttpContext |
Benutzerseitig angegebener Name |