Partilhar via


Autenticação da Internet

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

As credenciais de autenticação são armazenadas nas NetworkCredential classes e CredentialCache , que implementam a ICredentials interface. Quando uma destas classes é consultada para credenciais, devolve 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. Deve registar um módulo de autenticação personalizado com o AuthenticationManager antes de poder ser utilizado; os módulos para os métodos de autenticação básico, digest, negotiate, NTLM e Kerberos são registados por defeito.

NetworkCredential armazena um conjunto de credenciais associadas a um único recurso da Internet identificado por um URI e devolve-as em resposta a qualquer chamada ao GetCredential método. A NetworkCredential classe é normalmente usada por aplicações que acedem a um número limitado de recursos da Internet ou por aplicações que utilizam o mesmo conjunto de credenciais em todos os casos.

A CredentialCache classe armazena uma coleção de credenciais para vários recursos Web. Quando o GetCredential método é chamado, CredentialCache devolve o conjunto correto de credenciais, conforme determinado pelo URI do recurso Web e pelo esquema de autenticação solicitado. Aplicações que utilizam uma variedade de recursos da Internet com diferentes esquemas de autenticação beneficiam da utilização da CredentialCache classe, pois esta 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 juntamente com o pedido de credenciais. O pedido é então autenticado de acordo com o seguinte processo:

  1. O AuthenticationManager chama o método Authenticate em cada um dos módulos de autenticação registados, pela ordem em que foram registados. O AuthenticationManager utiliza 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 está concluído, o módulo de autenticação devolve um Authorization ao WebRequest que contém a informação necessária para aceder ao recurso de Internet.

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

Ver também