Partager via


Authentification Internet

Les classes System.Net prennent en charge divers mécanismes d'authentification clients, notamment les méthodes standard utilisées sur Internet, telles que Basic, Digest, Negotiate, NTLM et Kerberos, ainsi que des méthodes personnalisées que vous pouvez créer.

Les informations d'authentification sont enregistrées dans les classes NetworkCredential et CredentialCache qui implémentent l'interface ICredentials. Lorsque les informations d'authentification sont recherchées dans l'une de ces classes, cette dernière retourne une instance de la classe NetworkCredential. Le processus d'authentification est managé par la classe AuthenticationManager tandis que le processus d'authentification proprement dit est exécuté par une classe de module d'authentification qui implémente l'interface IAuthenticationModule. Avant de pouvoir utiliser un module d'authentification personnalisé, vous devez l'inscrire auprès du AuthenticationManager. Les modules des méthodes d'authentification Basic, Digest, Negotiate, NTLM et Kerberos sont inscrits par défaut.

NetworkCredential stocke un ensemble d'informations d'authentification associées à une ressource Internet qui est identifiée par un URI et retourne ces informations lors de l'appel à la méthode GetCredential. En général, la classe NetworkCredential est utilisée par des applications qui accèdent à un nombre restreint de ressources Internet ou par des applications qui utilisent toujours les mêmes informations d'authentification.

La classe CredentialCache stocke une collection d'informations d'authentification pour diverses ressources Web. Lors de l'appel de la méthode GetCredential, CredentialCache retourne l'ensemble d'informations d'authentification approprié, tel qu'il est défini par l'URI de la ressource Web et le schéma d'authentification requis. La classe CredentialCache convient particulièrement aux applications qui utilisent de nombreuses ressources Internet et divers schémas d'authentification, car elle stocke toutes les informations d'authentification et les fournit lorsque nécessaire.

Lorsqu'une ressource Internet demande une authentification, la méthode WebRequest.GetResponse transmet le WebRequest au AuthenticationManager avec la demande d'informations d'authentification. La demande est ensuite authentifiée selon le processus suivant :

  1. Le AuthenticationManager appelle la méthode Authenticate sur chaque module d'authentification inscrit, selon leur ordre d'inscription. Il exécute le processus d'authentification à l'aide du premier module qui ne retourne pas la valeur Null. Les détails du processus varient en fonction du type de module d'authentification utilisé.
  2. Une fois l'authentification terminée, le module d'authentification retourne un 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 demande de ressource préalable. Une application peut gagner du temps en pré-authentifiant l'utilisateur avec la ressource, ce qui permet d'éviter au moins un aller-retour vers le serveur. Elle peut également procéder à l'authentification durant le démarrage du programme afin de traiter plus rapidement les demandes de l'utilisateur par la suite. Lorsque le schéma d'authentification est capable d'utiliser la pré-authentification, la valeur de la propriété CanPreAuthenticate est True.

Voir aussi

Authentification de base et Digest | Authentification NTLM et Kerberos | Sécurité Internet