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 autorise l’envoi d’informations d’identification uniquement pour les demandes 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 == true )
            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 == true)
            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 lors de la réception de la demande au lieu d’envoyer une réponse indiquant que les informations d’identification du client sont requises. Bien que cela enregistre un aller-retour sur le serveur, ce gain de performances doit être mis en équilibre 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 IAuthenticationModule qui gère l’authentification 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 WebRequest avec des informations d’identification 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 à