ICredentialPolicy Interfaccia

Definizione

Definisce i criteri delle credenziali da utilizzare per le richieste di risorse mediante WebRequest e le relative classi derivate.

public interface class ICredentialPolicy
public interface ICredentialPolicy
type ICredentialPolicy = interface
Public Interface ICredentialPolicy
Derivato

Esempio

Nell'esempio di codice seguente viene illustrata un'implementazione di questa interfaccia che consente l'invio delle credenziali solo per le richieste destinate a host specifici.

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;
    }
}

Commenti

I criteri delle credenziali determinano se inviare le credenziali quando si invia un WebRequest oggetto per una risorsa di rete, ad esempio il contenuto di una pagina Web. Se le credenziali vengono inviate, i server che richiedono l'autenticazione client possono tentare di autenticare il client quando la richiesta viene ricevuta anziché inviare una risposta che indica che le credenziali del client sono necessarie. Anche se in questo modo si salva un round trip nel server, questo miglioramento delle prestazioni deve essere bilanciato rispetto al rischio di sicurezza insito nell'invio di credenziali attraverso la rete. Quando il server di destinazione non richiede l'autenticazione client, è consigliabile non inviare le credenziali.

Nota

ICredentialPolicy I criteri vengono richiamati solo se o l'oggetto WebRequest WebProxy associato alla richiesta dispone di credenziali che non nullsono . L'impostazione di questo criterio non ha alcun effetto sulle richieste che non specificano le credenziali.

Utilizzare la AuthenticationManager.CredentialPolicy proprietà per impostare un ICredentialPolicy criterio. L'oggetto IAuthenticationModule che gestisce l'autenticazione per la richiesta richiamerà il ShouldSendCredential metodo prima di eseguire l'autenticazione. Se il metodo restituisce false, l'autenticazione non viene eseguita.

Un ICredentialPolicy criterio influisce su tutte le istanze di WebRequest con credenziali non Null nel dominio applicazione corrente. Non è possibile eseguire l'override dei criteri nelle singole richieste.

Metodi

ShouldSendCredential(Uri, WebRequest, NetworkCredential, IAuthenticationModule)

Restituisce Boolean che indica se le credenziali del client sono inviate con una richiesta di risorsa mediante un'istanza della classe WebRequest.

Si applica a