ICredentialPolicy Interface
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Define a política de credencial a ser usada para solicitações de recursos que são feitas usando WebRequest e suas classes derivadas.
public interface class ICredentialPolicy
public interface ICredentialPolicy
type ICredentialPolicy = interface
Public Interface ICredentialPolicy
- Derivado
Exemplos
O exemplo de código a seguir mostra uma implementação dessa interface que permite que as credenciais sejam enviadas somente para solicitações direcionadas 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;
}
}
Comentários
A política de credencial determina se as credenciais devem ser enviadas ao enviar um WebRequest para um recurso de rede, como o conteúdo de uma página da Web. Se as credenciais forem enviadas, os servidores que exigem autenticação de cliente poderão tentar autenticar o cliente quando a solicitação for recebida em vez de enviar uma resposta que indique que as credenciais do cliente são necessárias. Embora isso salve uma viagem de ida e volta para o servidor, esse ganho de desempenho deve ser equilibrado em relação ao risco de segurança inerente ao envio de credenciais pela rede. Quando o servidor de destino não exige autenticação de cliente, é melhor não enviar credenciais.
Observação
ICredentialPolicy As políticas serão invocadas somente se o WebRequest ou o WebProxy associado à solicitação tiver credenciais que não null
são . Definir essa política não tem efeito sobre solicitações que não especificam credenciais.
Use a AuthenticationManager.CredentialPolicy propriedade para definir uma ICredentialPolicy política. O IAuthenticationModule que manipula a autenticação para a solicitação invocará o ShouldSendCredential método antes de executar a autenticação. Se o método retornar false
, a autenticação não será executada.
Uma ICredentialPolicy política afeta todas as instâncias do WebRequest com credenciais não nulas no domínio do aplicativo atual. A política não pode ser substituída em solicitações individuais.
Métodos
ShouldSendCredential(Uri, WebRequest, NetworkCredential, IAuthenticationModule) |
Retorna um Boolean que indica se as credenciais do cliente são enviadas com uma solicitação de recurso feita usando uma instância da classe WebRequest. |