Partager via


Authentification Internet

Les System.Net classes prennent en charge divers mécanismes d’authentification client, notamment les méthodes d’authentification Internet standard de base, digest, negotiate, NTLM et l’authentification Kerberos, ainsi que les méthodes personnalisées que vous pouvez créer.

Les données d'authentification sont stockées dans les classes NetworkCredential et CredentialCache, qui implémentent l'interface ICredentials. Lorsqu’une de ces classes est interrogée pour les informations d’identification, elle retourne une instance de la NetworkCredential classe. Le processus d’authentification est géré par la AuthenticationManager classe et le processus d’authentification réel est effectué par une classe de module d’authentification qui implémente l’interface IAuthenticationModule . Vous devez inscrire un module d’authentification personnalisé avec le AuthenticationManager avant de pouvoir l’utiliser ; les modules pour les méthodes d’authentification de base, digest, negotiate, NTLM et Kerberos sont inscrits par défaut.

NetworkCredential stocke un ensemble d’informations d’identification associées à une seule ressource Internet identifiée par un URI et les retourne en réponse à tout appel à la GetCredential méthode. La NetworkCredential classe est généralement utilisée par les applications qui accèdent à un nombre limité de ressources Internet ou par des applications qui utilisent le même ensemble d’informations d’identification dans tous les cas.

La CredentialCache classe stocke une collection d’informations d’identification pour différentes ressources Web. Lorsque la GetCredential méthode est appelée, CredentialCache retourne le jeu d’informations d’identification approprié, tel que déterminé par l’URI de la ressource Web et le schéma d’authentification demandé. Les applications qui utilisent une variété de ressources Internet avec différents schémas d’authentification utilisent la CredentialCache classe, car elles stockent toutes les informations d’identification et les fournissent comme demandé.

Lorsqu’une ressource Internet demande l’authentification, la WebRequest.GetResponse méthode envoie la WebRequest au AuthenticationManager avec la demande des informations d'identification. La demande est ensuite authentifiée en fonction du processus suivant :

  1. Le AuthenticationManager appelle la méthode Authenticate sur chacun des modules d’authentification enregistrés, dans l’ordre de leur enregistrement. Le AuthenticationManager utilise le premier module qui ne retourne pas null pour effectuer le processus d'authentification. Les détails du processus varient en fonction du type de module d’authentification impliqué.

  2. Une fois le processus d'authentification terminé, le module d'authentification retourne une Authorization au WebRequest qui contient les informations nécessaires pour accéder à la ressource Internet.

Certains schémas d’authentification peuvent authentifier un utilisateur sans commencer par demander une ressource. Une application peut gagner du temps en préauthentifiant l’utilisateur avec la ressource, éliminant ainsi au moins un aller-retour vers le serveur. Ou bien, il peut effectuer l’authentification au démarrage du programme afin d’être plus réactif à l’utilisateur ultérieurement. Les schémas d’authentification qui peuvent utiliser la pré-authentification définissent la PreAuthenticate propriété sur true.

Voir aussi