ICredentialPolicy Interfaz

Definición

Define la directiva de credenciales que se utilizará para las solicitudes de recursos realizadas con WebRequest y sus clases derivadas.

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 se envíen solo para las solicitudes destinadas a hosts específicos.

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 credenciales al enviar un WebRequest para un recurso de red, como el contenido de una página web. Si se envían 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 requieren las credenciales del cliente. Aunque esto ahorra un recorrido de ida y vuelta al servidor, esta ganancia de rendimiento debe equilibrarse con el riesgo de seguridad inherente al envío de credenciales a través de la red. Cuando el servidor de destino no requiere autenticación de cliente, es mejor no enviar credenciales.

Nota

ICredentialPolicy Las directivas solo se invocan si o WebRequest el WebProxy asociado a la solicitud tienen credenciales que no nullson . Establecer esta directiva no tiene ningún efecto en las solicitudes que no especifican credenciales.

Utilice la AuthenticationManager.CredentialPolicy propiedad para establecer una ICredentialPolicy directiva. Que IAuthenticationModule controla la autenticación de la solicitud invocará el ShouldSendCredential método antes de realizar la autenticación. Si el método devuelve false, no se realiza la autenticación.

Una ICredentialPolicy directiva afecta a todas las instancias de WebRequest con credenciales que no son NULL en el dominio de aplicación actual. La directiva no se puede invalidar en solicitudes individuales.

Métodos

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.

Se aplica a