Partager via


ICredentialPolicy Interface

Définition

Définit la stratégie d'informations d'identification à utiliser pour les demandes de ressources qui sont effectuées à l'aide de WebRequest et de ses classes dérivées.

public interface class ICredentialPolicy
public interface ICredentialPolicy
type ICredentialPolicy = interface
Public Interface ICredentialPolicy
Dérivé

Exemples

L’exemple de code suivant montre une implémentation de cette interface qui permet d’envoyer des informations d’identification uniquement pour les requêtes qui ciblent des hôtes spécifiques.

public ref class SelectedHostsCredentialPolicy: public ICredentialPolicy
{
public:
   SelectedHostsCredentialPolicy(){}

   virtual bool ShouldSendCredential( Uri^ challengeUri, WebRequest^ request, NetworkCredential^ /*credential*/, IAuthenticationModule^ /*authModule*/ )
   {
      Console::WriteLine( L"Checking custom credential policy." );
      if ( request->RequestUri->Host->Equals( L"www.contoso.com" ) || challengeUri->IsLoopback )
            return true;

      return false;
   }
};
public class SelectedHostsCredentialPolicy: ICredentialPolicy
{
    public SelectedHostsCredentialPolicy()
    {
    }

    public virtual bool ShouldSendCredential(Uri challengeUri,
        WebRequest request,
        NetworkCredential credential,
        IAuthenticationModule authModule)
    {
        Console.WriteLine("Checking custom credential policy.");
        if (request.RequestUri.Host == "www.contoso.com" ||
            challengeUri.IsLoopback)
            return true;

        return false;
    }
}

Remarques

La stratégie d’informations d’identification détermine s’il faut envoyer des informations d’identification lors de l’envoi d’une WebRequest ressource réseau, comme le contenu d’une page web. Si des informations d’identification sont envoyées, les serveurs qui nécessitent l’authentification du client peuvent tenter d’authentifier le client lorsque la demande est reçue au lieu d’envoyer une réponse indiquant que les informations d’identification du client sont requises. Bien que cela évite un aller-retour sur le serveur, ce gain de performances doit être équilibré avec le risque de sécurité inhérent à l’envoi d’informations d’identification sur le réseau. Lorsque le serveur de destination ne nécessite pas d’authentification client, il est préférable de ne pas envoyer d’informations d’identification.

Notes

ICredentialPolicy les stratégies sont appelées uniquement si le WebRequest ou WebProxy associé à la demande a des informations d’identification qui ne sont pas null. La définition de cette stratégie n’a aucun effet sur les demandes qui ne spécifient pas d’informations d’identification.

Utilisez la AuthenticationManager.CredentialPolicy propriété pour définir une ICredentialPolicy stratégie. le qui gère l’authentification IAuthenticationModule pour la demande appelle la ShouldSendCredential méthode avant d’effectuer l’authentification. Si la méthode retourne false, l’authentification n’est pas effectuée.

Une ICredentialPolicy stratégie affecte toutes les instances de avec des informations d’identification WebRequest non null dans le domaine d’application actuel. La stratégie ne peut pas être remplacée sur des demandes individuelles.

Méthodes

ShouldSendCredential(Uri, WebRequest, NetworkCredential, IAuthenticationModule)

Retourne un Boolean indiquant si les informations d'identification du client sont envoyées avec une demande de ressource effectuée à l'aide d'une instance de la classe WebRequest.

S’applique à