Freigeben über


ICredentialPolicy Schnittstelle

Definition

Definiert die Anmeldeinformationen-Richtlinie, die für mit WebRequest und davon abgeleiteten Klassen durchgeführte Ressourcenanforderungen verwendet werden soll.

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

Beispiele

Das folgende Codebeispiel zeigt eine Implementierung dieser Schnittstelle, die das Senden von Anmeldeinformationen nur für Anforderungen ermöglicht, die auf bestimmte Hosts abzielen.

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

Hinweise

Die Anmeldeinformationsrichtlinie bestimmt, ob Beim Senden von WebRequest Anmeldeinformationen für eine Netzwerkressource, z. B. der Inhalt einer Webseite, gesendet werden soll. Wenn Anmeldeinformationen gesendet werden, können Server, die die Clientauthentifizierung erfordern, versuchen, den Client zu authentifizieren, wenn die Anforderung empfangen wird, anstatt eine Antwort zu senden, die angibt, dass die Anmeldeinformationen des Clients erforderlich sind. Dies spart zwar einen Roundtrip zum Server, aber dieser Leistungsgewinn muss mit dem Sicherheitsrisiko abgeglichen werden, das beim Senden von Anmeldeinformationen über das Netzwerk innewohnt. Wenn der Zielserver keine Clientauthentifizierung erfordert, ist es am besten, keine Anmeldeinformationen zu senden.

Hinweis

ICredentialPolicy Richtlinien werden nur aufgerufen, wenn das WebRequest oder, das WebProxy der Anforderung zugeordnet ist, über Anmeldeinformationen verfügt, die nicht nullsind. Das Festlegen dieser Richtlinie hat keine Auswirkungen auf Anforderungen, die keine Anmeldeinformationen angeben.

Verwenden Sie die AuthenticationManager.CredentialPolicy -Eigenschaft, um eine ICredentialPolicy Richtlinie festzulegen. Der IAuthenticationModule , der die Authentifizierung für die Anforderung verarbeitet, ruft die ShouldSendCredential -Methode auf, bevor die Authentifizierung ausgeführt wird. Wenn die Methode zurückgibt false, wird die Authentifizierung nicht ausgeführt.

Eine ICredentialPolicy Richtlinie wirkt sich auf alle Instanzen von mit WebRequest Nicht-NULL-Anmeldeinformationen in der aktuellen Anwendungsdomäne aus. Die Richtlinie kann nicht für einzelne Anforderungen überschrieben werden.

Methoden

ShouldSendCredential(Uri, WebRequest, NetworkCredential, IAuthenticationModule)

Gibt einen Boolean-Wert zurück, der angibt, ob die Anmeldeinformationen des Clients mit einer Ressourcenanforderung gesendet werden, die mithilfe einer Instanz der WebRequest-Klasse ausgeführt wird.

Gilt für: