ICredentialPolicy ICredentialPolicy ICredentialPolicy ICredentialPolicy Interface

Definición

Define la directiva de credenciales que se utilizará para las solicitudes de recursos realizadas con WebRequest y sus clases derivadas.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
Derivado

Ejemplos

En el ejemplo de código siguiente se muestra una implementación de esta interfaz que permite que las credenciales que se enviarán solo para las solicitudes destinadas a hosts específicos.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;
    }
}

Comentarios

La directiva de credenciales determina si se envían las credenciales cuando se envía un WebRequest para un recurso de red, como el contenido de una página 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. Si se envían las credenciales, los servidores que requieren autenticación de cliente pueden intentar autenticar al cliente cuando se recibe la solicitud en lugar de enviar una respuesta que indica que se necesitan las credenciales del cliente.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. Aunque esto ahorra un ida y vuelta al servidor, esta mejora del rendimiento se debe valorar el riesgo de seguridad inherentes a enviar credenciales a través de la red.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. Cuando el servidor de destino no requiere autenticación del cliente, es mejor no enviar las credenciales.When the destination server does not require client authentication, it is best not to send credentials.

Nota

ICredentialPolicy las directivas se invocan únicamente si el WebRequest o WebProxy que está asociado con la solicitud tiene credenciales que no son null.ICredentialPolicy policies are invoked only if the WebRequest or the WebProxy that is associated with the request has credentials that are not null. Si configura esta directiva no tiene ningún efecto en las solicitudes que no especifique credenciales.Setting this policy has no effect on requests that do not specify credentials.

Use la AuthenticationManager.CredentialPolicy propiedad para establecer un ICredentialPolicy directiva.Use the AuthenticationManager.CredentialPolicy property to set an ICredentialPolicy policy. El IAuthenticationModule que controla la autenticación para la solicitud se invocará el ShouldSendCredential método antes de realizar la autenticación.The IAuthenticationModule that handles authentication for the request will invoke the ShouldSendCredential method before performing the authentication. Si el método devuelve false, no se realiza la autenticación.If the method returns false, authentication is not performed.

Un ICredentialPolicy directiva afecta a todas las instancias de WebRequest con las credenciales que no son null en el dominio de aplicación actual.An ICredentialPolicy policy affects all instances of WebRequest with non-null credentials in the current application domain. La directiva no puede reemplazarse en las solicitudes individuales.The policy cannot be overridden on individual requests.

Métodos

ShouldSendCredential(Uri, WebRequest, NetworkCredential, IAuthenticationModule) ShouldSendCredential(Uri, WebRequest, NetworkCredential, IAuthenticationModule) ShouldSendCredential(Uri, WebRequest, NetworkCredential, IAuthenticationModule) ShouldSendCredential(Uri, WebRequest, NetworkCredential, IAuthenticationModule)

Devuelve un valor Boolean que indica si se envían las credenciales del cliente con una solicitud de recurso realizada utilizando una instancia de la clase 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.

Se aplica a