ICredentialPolicy Interfejs

Definicja

Definiuje zasady poświadczeń, które mają być używane dla żądań zasobów, które są tworzone przy użyciu WebRequest i ich klas pochodnych.Defines the credential policy to be used for resource requests that are made using WebRequest and its derived classes.

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

Przykłady

Poniższy przykład kodu pokazuje implementację tego interfejsu, która zezwala na wysyłanie poświadczeń tylko dla żądań, które są przeznaczone dla określonych hostów.The following code example shows an implementation of this interface that permits credentials to be sent only for requests that target specific hosts.

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

Uwagi

Zasady poświadczeń określają, czy należy wysyłać poświadczenia podczas wysyłania WebRequest dla zasobu sieciowego, takich jak zawartość strony sieci Web.The credential policy determines whether to send credentials when sending a WebRequest for a network resource, such as the content of a Web page. Jeśli są wysyłane poświadczenia, serwery, które wymagają uwierzytelniania klienta, mogą próbować uwierzytelniać klienta po odebraniu żądania, zamiast wysyłać odpowiedzi wskazujące, że poświadczenia klienta są wymagane.If credentials are sent, servers that require client authentication can attempt to authenticate the client when the request is received instead of sending a response that indicates that the client's credentials are required. Podczas gdy jest to zaoszczędzenie na serwerze, ten wzrost wydajności musi być zrównoważony w odniesieniu do zagrożenia bezpieczeństwa związanego z wysyłaniem poświadczeń w sieci.While this saves a round trip to the server, this performance gain must be balanced against the security risk inherent in sending credentials across the network. Gdy serwer docelowy nie wymaga uwierzytelniania klienta, najlepiej nie wysyłaj poświadczeń.When the destination server does not require client authentication, it is best not to send credentials.

Uwaga

zasady ICredentialPolicy są wywoływane tylko wtedy, gdy WebRequest lub WebProxy skojarzone z żądaniem ma poświadczenia, które nie są null.ICredentialPolicy policies are invoked only if the WebRequest or the WebProxy that is associated with the request has credentials that are not null. Ustawienie tych zasad nie ma wpływu na żądania, które nie określają poświadczeń.Setting this policy has no effect on requests that do not specify credentials.

Aby ustawić zasady ICredentialPolicy, użyj właściwości AuthenticationManager.CredentialPolicy.Use the AuthenticationManager.CredentialPolicy property to set an ICredentialPolicy policy. IAuthenticationModule, który obsługuje uwierzytelnianie dla żądania, wywoła metodę ShouldSendCredential przed przeprowadzeniem uwierzytelniania.The IAuthenticationModule that handles authentication for the request will invoke the ShouldSendCredential method before performing the authentication. Jeśli metoda zwraca false, uwierzytelnianie nie jest wykonywane.If the method returns false, authentication is not performed.

Zasady ICredentialPolicy mają wpływ na wszystkie wystąpienia WebRequest z poświadczeniami innymi niż null w bieżącej domenie aplikacji.An ICredentialPolicy policy affects all instances of WebRequest with non-null credentials in the current application domain. Nie można zastąpić zasad w poszczególnych żądaniach.The policy cannot be overridden on individual requests.

Metody

ShouldSendCredential(Uri, WebRequest, NetworkCredential, IAuthenticationModule)

Zwraca Boolean, który wskazuje, czy poświadczenia klienta są wysyłane z żądaniem zasobu, przy użyciu wystąpienia klasy WebRequest.Returns a Boolean that indicates whether the client's credentials are sent with a resource request made using an instance of the WebRequest class.

Dotyczy