Compartilhar via


Autenticação da Internet

As System.Net classes dão suporte a uma variedade de mecanismos de autenticação de cliente, incluindo os métodos padrão de autenticação da Internet básicos, resumo, negociação, NTLM e autenticação Kerberos, bem como métodos personalizados que você pode criar.

As credenciais de autenticação são armazenadas nas classes NetworkCredential e CredentialCache, que implementam a interface ICredentials. Quando uma dessas classes é consultada para obter credenciais, ela retorna uma instância da NetworkCredential classe. O processo de autenticação é gerenciado pela AuthenticationManager classe e o processo de autenticação real é executado por uma classe de módulo de autenticação que implementa a IAuthenticationModule interface. Você deve registrar um módulo de autenticação personalizado com o AuthenticationManager antes que ele possa ser usado; os módulos para os métodos de autenticação básicos, digest, negotiate, NTLM e Kerberos são registrados por padrão.

NetworkCredential armazena um conjunto de credenciais associadas a um único recurso de Internet identificado por um URI e as retorna em resposta a qualquer chamada ao GetCredential método. A NetworkCredential classe normalmente é usada por aplicativos que acessam um número limitado de recursos da Internet ou por aplicativos que usam o mesmo conjunto de credenciais em todos os casos.

A CredentialCache classe armazena uma coleção de credenciais para vários recursos da Web. Quando o GetCredential método é chamado, CredentialCache retorna o conjunto adequado de credenciais, conforme determinado pelo URI do recurso Web e pelo esquema de autenticação solicitado. Aplicativos que usam uma variedade de recursos da Internet com diferentes esquemas de autenticação se beneficiam do uso da CredentialCache classe, pois armazena todas as credenciais e as fornece conforme solicitado.

Quando um recurso da Internet solicita autenticação, o WebRequest.GetResponse método envia o WebRequest para o AuthenticationManager junto com o pedido por credenciais. Em seguida, a solicitação é autenticada de acordo com o seguinte processo:

  1. AuthenticationManager chama o método Authenticate em cada um dos módulos de autenticação registrados na ordem em que foram registrados. O AuthenticationManager usa o primeiro módulo que não retorna null para realizar o processo de autenticação. Os detalhes do processo variam dependendo do tipo de módulo de autenticação envolvido.

  2. Quando o processo de autenticação é concluído, o módulo de autenticação retorna um Authorization para o WebRequest que contém as informações necessárias para acessar o recurso da Internet.

Alguns esquemas de autenticação podem autenticar um usuário sem antes fazer uma solicitação para um recurso. Um aplicativo pode economizar tempo pré-autenticando o usuário com o recurso, eliminando pelo menos uma viagem de ida e volta para o servidor. Ou pode executar a autenticação durante a inicialização do programa para ser mais responsivo ao usuário posteriormente. Esquemas de autenticação que podem usar a pré-autenticação definem a PreAuthenticate propriedade como true.

Consulte também