ActiveDirectoryMembershipProvider.ValidateUser(String, String) Método

Definição

Verifica se o nome de utilizador e a palavra-passe especificados existem no armazenamento de dados do Active Directory.

public:
 override bool ValidateUser(System::String ^ username, System::String ^ password);
public override bool ValidateUser(string username, string password);
override this.ValidateUser : string * string -> bool
Public Overrides Function ValidateUser (username As String, password As String) As Boolean

Parâmetros

username
String

O nome do utilizador a validar.

password
String

A palavra-passe do utilizador especificado.

Devoluções

true se os especificados username e password forem válidos; caso contrário, false. Se o utilizador especificado não existir na Active Directory data store, o método ValidateUser(String, String) devolve false.

Exceções

O ValidateUser(String, String) método é chamado antes da ActiveDirectoryMembershipProvider instância ser inicializada.

Observações

Este método é chamado pela classe Membership para validar as credenciais do utilizador contra o armazenamento de dados Active Directory.

Se a EnablePasswordReset propriedade for true e as credenciais fornecidas forem válidas, os contadores de rastreio do utilizador para respostas de passwords erradas são reiniciados.

O ValidateUser método pode regressar false quando forem fornecidas as credenciais corretas, nas seguintes circunstâncias:

  1. A conta de utilizador foi bloqueada pelo servidor de diretórios devido a demasiadas tentativas falhadas de logon. O utilizador não poderá iniciar sessão até que a duração do bloqueio do diretório ultrapasse.

  2. Se a EnablePasswordReset propriedade for true, a conta de utilizador será bloqueada se o utilizador fornecer uma resposta de palavra-passe errada demasiadas vezes. A conta do utilizador será desbloqueada após o tempo especificado na PasswordAnswerAttemptLockoutDuration propriedade ter passado.

  3. O utilizador deve existir no contentor especificado na cadeia de ligação. As credenciais válidas são fornecidas para uma conta de utilizador localizada num contentor diferente ou num domínio diferente. O utilizador deve existir no contentor especificado na cadeia de ligação.

Ao validar um utilizador, o fornecedor valida as credenciais ligando-se ao armazenamento de dados do Active Directory usando o nome de utilizador e a palavra-passe especificados, e não as credenciais configuradas no ficheiro de configuração da aplicação.

No entanto, a ActiveDirectoryMembershipProvider instância irá ligar-se ao diretório usando as credenciais configuradas pelas seguintes razões.

  • Para confirmar que um utilizador existe dentro do âmbito de pesquisa determinado pela cadeia de ligação da instância ActiveDirectoryMembershipProvider. O fornecedor utiliza uma pesquisa em subárvore que começa no ponto de pesquisa especificado na cadeia de ligação para determinar se existe um utilizador. O utilizador deve existir no contentor especificado. Credenciais válidas fora do contentor especificado pela cadeia de ligação não serão validadas. Consulte o ActiveDirectoryMembershipProvider tópico da aula para mais informações sobre cordas de ligação.

  • Se a EnablePasswordReset propriedade for true, a ActiveDirectoryMembershipProvider instância usará as credenciais configuradas para carregar a instância do utilizador e verificar se o utilizador foi bloqueado porque fez demasiadas tentativas falhadas de alterar a resposta da palavra-passe.

Importante

Ligar a um controlador de domínio do Active Directory com a conta "Guest" ativada é uma potencial ameaça à segurança. Todas as tentativas de validação feitas num controlador de domínio Active Directory com a conta "Guest" ativada terão sucesso. Para melhorar a segurança ao usar um controlador de domínio do Active Directory, deve desativar a conta "Guest" no controlador de domínio.

A instância ActiveDirectoryMembershipProvider tentará uma ligação concorrente contra Active Directory quando uma das seguintes condições for cumprida:

Além disso, para que exista uma ligação concorrente, as seguintes condições devem ser verdadeiras:

  • O servidor de diretórios deve estar a correr no Windows Server 2003.

  • O sistema operativo do servidor Web que executa a instância ActiveDirectoryMembershipProvider deve suportar binds concorrentes (por exemplo, Windows Server 2003).

Quando é usada uma ligação concorrente, a última data de início de sessão do utilizador não é atualizada no diretório; Portanto, a LastLoginDate propriedade não pode ser considerada confiável.

Os espaços dianteiro e traseiro são cortados a partir do username parâmetro.

Aplica-se a

Ver também