ICredentialPolicy Interfaz
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 null
son . 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. |