Compartilhar via


ICredentialPolicy Interface

Definição

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 )
            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)
            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 nullsã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.

Aplica-se a