Freigeben über


ASP.NET-Identitätsmatrix

* * *

Auf dieser Seite

Zielsetzung Zielsetzung
Betrifft Betrifft
Verwendung dieses Moduls Verwendung dieses Moduls
Zusammenfassung Zusammenfassung
Anonyme IIS-Authentifizierung Anonyme IIS-Authentifizierung
IIS-Standardauthentifizierung IIS-Standardauthentifizierung
IIS-Digestauthentifizierung IIS-Digestauthentifizierung
In IIS integrierte Windows-Authentifizierung 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"/>
<authentication mode="Windows" />

HttpContext
WindowsIdentity
Thread

-
MACHINE\IUSR_MACHINE
-

<identity impersonate="false"/>
<authentication mode="Windows" />

HttpContext
WindowsIdentity
Thread

-
MACHINE\ASPNET
-

<identity impersonate="true" />
<authentication mode="Forms" />

HttpContext
WindowsIdentity
Thread

Benutzerseitig angegebener Name
MACHINE\IUSR_MACHINE
Benutzerseitig angegebener Name

<identity impersonate="false"/>
<authentication mode="Forms" />

HttpContext
WindowsIdentity
Thread

Benutzerseitig angegebener Name
MACHINE\ASPNET
Benutzerseitig angegebener Name

 

IIS-Standardauthentifizierung

Web.config-Einstellungen

Position der Variablen

Resultierende Identität

<identity impersonate="true"/>
<authentication mode="Windows" />

HttpContext
WindowsIdentity
Thread

Domain\UserName
Domain\UserName
Domain\UserName

<identity impersonate="false"/>
<authentication mode="Windows" />

HttpContext
WindowsIdentity
Thread

Domain\UserName
MACHINE\ASPNET
Domain\UserName

<identity impersonate="true"/>
<authentication mode="Forms" />

HttpContext
WindowsIdentity
Thread

Benutzerseitig angegebener Name
Domain\UserName
Benutzerseitig angegebener Name

<identity impersonate="false"/>
<authentication mode="Forms" />

HttpContext
WindowsIdentity
Thread

Benutzerseitig angegebener Name
MACHINE\ASPNET
Benutzerseitig angegebener Name

 

IIS-Digestauthentifizierung

Web.config-Einstellungen

Position der Variablen

Resultierende Identität

<identity impersonate="true"/>
<authentication mode="Windows" />

HttpContext
WindowsIdentity
Thread

Domain\UserName
Domain\UserName
Domain\UserName

<identity impersonate="false"/>
<authentication mode="Windows" />

HttpContext
WindowsIdentity
Thread

Domain\UserName
MACHINE\ASPNET
Domain\UserName

<identity impersonate="true"/>
<authentication mode="Forms" />

HttpContext
WindowsIdentity
Thread

Benutzerseitig angegebener Name
Domain\UserName
Benutzerseitig angegebener Name

<identity impersonate="false"/>
<authentication mode="Forms" />

HttpContext
WindowsIdentity
Thread

Benutzerseitig angegebener Name
MACHINE\ASPNET
Benutzerseitig angegebener Name

 

In IIS integrierte Windows-Authentifizierung

Web.config-Einstellungen

Position der Variablen

Resultierende Identität

<identity impersonate="true"/>
<authentication mode="Windows" />

HttpContext
WindowsIdentity
Thread

Domain\UserName
Domain\UserName
Domain\UserName

<identity impersonate="false"/>
<authentication mode="Windows" />

HttpContext
WindowsIdentity
Thread

Domain\UserName
MACHINE\ASPNET
Domain\UserName

<identity impersonate="true"/>
<authentication mode="Forms" />

HttpContext
WindowsIdentity
Thread

Benutzerseitig angegebener Name
Domain\UserName
Benutzerseitig angegebener Name

<identity impersonate="false"/>
<authentication mode="Forms" />

HttpContext
WindowsIdentity
Thread

Benutzerseitig angegebener Name
MACHINE\ASPNET
Benutzerseitig angegebener Name