Freigeben über


Windows-Authentifizierungsanbieter

Aktualisiert: November 2007

Die Windows-Authentifizierung behandelt die von den Microsoft Internetinformationsdiensten (IIS) bereitgestellte Benutzeridentität als authentifizierten Benutzer in einer ASP.NET-Anwendung. IIS stellt mehrere Authentifizierungsmechanismen zum Überprüfen der Benutzeridentität bereit, einschließlich der anonymen Authentifizierung, der integrierten Windows-Authentifizierung (NTLM), der integrierten Windows-Authentifizierung (Kerberos), der Basis-Authentifizierung (base64-codiert), der Digest-Authentifizierung und der auf Clientzertifikaten basierenden Authentifizierung.

Die Windows-Authentifizierung in ASP.NET wird mithilfe des WindowsAuthenticationModule-Moduls implementiert. Das Modul erstellt auf der Grundlage der von IIS bereitgestellten Anmeldeinformationen eine WindowsIdentity und legt die Identität als aktuellen User-Eigenschaftenwert der Anwendung fest.

Die Windows-Authentifizierung ist der Standardauthentifizierungsmechanismus für ASP.NET-Anwendungen und wird als Authentifizierungsmodus für eine Anwendung mithilfe des authentication-Konfigurationselements identifiziert. Dies wird im folgenden Codebeispiel veranschaulicht.

<system.web>
  <authentication mode="Windows"/>
</system.web>

Imitieren der Windows-Identität

Obwohl der Windows-Authentifizierungsmodus den Wert der aktuellen User-Eigenschaft auf der Grundlage der von IIS bereitgestellten Anmeldeinformationen auf eine WindowsIdentity festlegt, wird die für das Betriebssystem bereitgestellte Windows-Identität nicht geändert. Die für das Betriebssystem bereitgestellte Windows-Identität wird zur Berechtigungsüberprüfung verwendet, z. B. für NTFS-Dateiberechtigungen, oder zum Verbinden mit einer Datenbank mithilfe der integrierten Sicherheit. Diese Windows-Identität entspricht standardmäßig der Identität des ASP.NET-Prozesses. Unter Microsoft Windows 2000 und Windows XP Professional entspricht diese der Identität des ASP.NET-Workerprozesses, der dem lokalen ASP.NET-Konto entspricht. Unter Windows Server 2003 entspricht diese der Identität des IIS-Anwendungspools, zu dem die ASP.NET-Anwendung gehört. Dies entspricht standardmäßig dem Konto NETWORK SERVICE.

Sie können durch Aktivieren des Identitätswechsels die Windows-Identität der ASP.NET-Anwendung in der Konfiguration als die von IIS bereitgestellte Windows-Identität festlegen. Dabei weisen Sie die ASP.NET-Anwendung an, die von IIS bereitgestellte Identität für alle Aufgaben zu imitieren, die das Windows-Betriebssystem authentifiziert, einschließlich des Datei- und Netzwerkzugriffs.

Um den Identitätswechsel für die Webanwendung festzulegen, legen Sie in der Datei Web.config der Anwendung das impersonate-Attribut des Identität-Elements auf true fest. Dies wird im folgenden Codebeispiel veranschaulicht.

<system.web>
  <authentication mode="Windows"/>
  <identity impersonate="true"/>
</system.web>

Weitere Informationen zur ASP.NET-Prozessidentität finden Sie unter Konfigurieren der Prozessidentität in ASP.NET. Weitere Informationen zum Identitätswechsel finden Sie unter der Impersonate-Methode.

Aktivieren der Autorisierung mithilfe von NTFS-ACLs

Sie können die Sicherheit der ASP.NET-Anwendung erhöhen, indem Sie die Dateien der Anwendung mithilfe des NTFS-Dateisystems und Access Control Lists (ACL – Zugriffssteuerungsliste) sichern. Mit ACLs können Sie angeben, welche Benutzer und Gruppen von Benutzern über Zugriff auf die Dateien der Anwendung verfügen. Eine Liste der erforderlichen NTFS-Dateiberechtigungen für das Ausführen einer Windows-Identität als Identität einer ASP.NET-Seite finden Sie unter Erforderliche Zugriffssteuerungslisten für ASP.NET.

Hinweis:

Mithilfe von ASP.NET-Rollen kann die Benutzerautorisierung für Seiten und Abschnitte der Webanwendung verwaltet werden. Weitere Informationen finden Sie unter Verwalten der Autorisierung mithilfe von Rollen.

Siehe auch

Aufgaben

Gewusst wie: Erstellen eines WindowsPrincipal-Objekts

Gewusst wie: Erstellen von GenericPrincipal-Objekten und GenericIdentity-Objekten

Weitere Ressourcen

Sicherheit für ASP.NET-Webanwendungen

Authentifizierung in ASP.NET