InternetauthentifizierungInternet Authentication

Die System.Net-Klassen unterstützen eine Vielzahl von Client-Authentifizierungsmechanismen, einschließlich folgender Standardmethoden zur Internetauthentifizierung: Basic, Digest, Negotiate, NTLM, die Kerberos-Authentifizierung und benutzerdefinierte Methoden, die Sie erstellen können.The System.Net classes support a variety of client authentication mechanisms, including the standard Internet authentication methods basic, digest, negotiate, NTLM, and Kerberos authentication, as well as custom methods that you can create.

Anmeldeinformationen werden in den NetworkCredential- und CredentialCache-Klassen gespeichert, die die ICredentials-Schnittstelle implementieren.Authentication credentials are stored in the NetworkCredential and CredentialCache classes, which implement the ICredentials interface. Wenn eine dieser Klassen nach Anmeldeinformationen abgefragt wird, gibt sie eine Instanz der Klasse NetworkCredential zurück.When one of these classes is queried for credentials, it returns an instance of the NetworkCredential class. Der Authentifizierungsvorgang wird durch die AuthenticationManager-Klasse verwaltet, und der tatsächliche Authentifizierungsprozess wird von einer Authentifizierungsmodulklasse ausgeführt, die die IAuthenticationModule-Schnittstelle implementiert.The authentication process is managed by the AuthenticationManager class, and the actual authentication process is performed by an authentication module class that implements the IAuthenticationModule interface. Sie müssen ein benutzerdefiniertes Authentifizierungsmodul mit dem AuthenticationManager registrieren, bevor dieses verwendet werden kann. Module für Basic-, Digest-, Negotiate-, NTLM- und Kerberos-Authentifizierungsmethoden werden standardmäßig registriert.You must register a custom authentication module with the AuthenticationManager before it can be used; modules for the basic, digest, negotiate, NTLM, and Kerberos authentication methods are registered by default.

NetworkCredential speichert eine Reihe von Anmeldeinformationen durch eine einzelne Internetressource, die von einer URI identifiziert wird. Diese werden als Antwort auf jeden Aufruf der GetCredential-Methode zurückgegeben.NetworkCredential stores a set of credentials associated with a single Internet resource identified by a URI and returns them in response to any call to the GetCredential method. Die NetworkCredential-Klasse wird üblicherweise von Anwendungen verwendet, die auf eine begrenzte Anzahl von Internetressourcen zugreifen oder von Anwendungen, die in allen Fällen dieselbe Reihe von Anmeldeinformationen verwenden.The NetworkCredential class is typically used by applications that access a limited number of Internet resources or by applications that use the same set of credentials in all cases.

Die CredentialCache-Klasse speichert eine Sammlung von Anmeldeinformationen für verschiedene Webressourcen.The CredentialCache class stores a collection of credentials for various Web resources. Wenn die GetCredential-Methode aufgerufen wird, gibt CredentialCache die richtige Reihe von Anmeldeinformationen zurück. Dies wird durch die URI der Webressource und das angeforderte Authentifizierungsschema bestimmt.When the GetCredential method is called, CredentialCache returns the proper set of credentials, as determined by the URI of the Web resource and the requested authentication scheme. Anwendungen, die eine Vielzahl von Internetressourcen mit verschiedenen Authentifizierungsschemas verwenden, profitieren von der Anwendung der CredentialCache-Klasse, da diese alle Anmeldeinformationen speichert und auf Anforderung bereitstellt.Applications that use a variety of Internet resources with different authentication schemes benefit from using the CredentialCache class, since it stores all the credentials and provides them as requested.

Wenn eine Internetressource die Authentifizierung anfordert, sendet die WebRequest.GetResponse-Methode den WebRequest zusammen mit der Anforderung für Anmeldeinformationen an den AuthenticationManager.When an Internet resource requests authentication, the WebRequest.GetResponse method sends the WebRequest to the AuthenticationManager along with the request for credentials. Die Anforderung wird dann gemäß dem folgenden Prozess authentifiziert:The request is then authenticated according to the following process:

  1. Der AuthenticationManager ruft die Authenticate-Methode auf jedem der registrierten Authentifizierungsmodule in der Reihenfolge auf, in der sie registriert wurden.The AuthenticationManager calls the Authenticate method on each of the registered authentication modules in the order they were registered. Der AuthenticationManager verwendet das erste Modul, das nicht NULL zurückgibt, um den Authentifizierungsprozess durchzuführen.The AuthenticationManager uses the first module that does not return null to carry out the authentication process. Die Einzelheiten des Prozesses unterscheiden sich je nach Typ der beteiligten Authentifizierungsmodule.The details of the process vary depending on the type of authentication module involved.

  2. Wenn der Authentifizierungsprozess abgeschlossen ist, gibt das Authentifizierungsmodul Authorization an WebRequest zurück, das die Informationen enthält, die für den Zugriff auf die Internetressource benötigt werden.When the authentication process is complete, the authentication module returns an Authorization to the WebRequest that contains the information needed to access the Internet resource.

Einige Authentifizierungsschemas können einen Benutzer authentifizieren, ohne zuvor eine Anforderung für eine Ressource durchzuführen.Some authentication schemes can authenticate a user without first making a request for a resource. Eine Anwendung kann Zeit sparen, indem der Benutzer mit der Ressource präauthentifiziert wird. So wird mindestens ein Roundtrip zum Server vermieden.An application can save time by preauthenticating the user with the resource, thus eliminating at least one round trip to the server. Sie können die Authentifizierung auch während des Programmstarts durchführen, um später besser auf den Benutzer reagieren zu können.Or, it can perform authentication during program startup in order to be more responsive to the user later. Authentifizierungsschemas, die die Präauthentifizierung verwenden können, legen die PreAuthenticate-Eigenschaft auf TRUE fest.Authentication schemes that can use preauthentication set the PreAuthenticate property to true.

Siehe auchSee also