ActiveDirectoryMembershipProvider.ValidateUser(String, String) Método

Definição

Verifica se o nome de usuário especificado e a senha 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 usuário a ser validado.

password
String

A senha do usuário especificado.

Retornos

true se username e password especificados são válidos; caso contrário, false. Se o usuário especificado não existe no armazenamento de dados do Active Directory, o método ValidateUser(String, String) retorna false.

Exceções

O método ValidateUser(String, String) é chamado antes que a instância ActiveDirectoryMembershipProvider seja inicializada.

Comentários

Esse método é chamado pela Membership classe para validar as credenciais do usuário no armazenamento de dados do Active Directory.

Se a EnablePasswordReset propriedade for true e as credenciais fornecidas forem válidas, os contadores de acompanhamento do usuário para respostas de senha incorretas serão redefinidos.

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

  1. A conta de usuário foi bloqueada pelo servidor de diretório devido a muitas tentativas de logon com falha. O usuário não poderá fazer logon até que a duração do bloqueio do diretório seja aprovada.

  2. Se a EnablePasswordReset propriedade for true, a conta de usuário será bloqueada se o usuário tiver fornecido uma resposta de senha incorreta muitas vezes. A conta do usuário será desbloqueada após o tempo especificado na PasswordAnswerAttemptLockoutDuration propriedade ter passado.

  3. O usuário deve existir no contêiner especificado na cadeia de conexão. Credenciais válidas são fornecidas para uma conta de usuário localizada em um contêiner diferente ou em um domínio diferente. O usuário deve existir no contêiner especificado na cadeia de conexão.

Ao validar um usuário, o provedor valida as credenciais conectando-se ao armazenamento de dados do Active Directory usando o nome de usuário e a senha especificados, não as credenciais configuradas no arquivo de configuração do aplicativo.

No entanto, a ActiveDirectoryMembershipProvider instância se conectará ao diretório usando as credenciais configuradas pelos seguintes motivos.

  • Para confirmar se um usuário existe dentro do escopo de pesquisa, conforme determinado pela ActiveDirectoryMembershipProvider cadeia de conexão da instância. O provedor usa uma pesquisa de subárvores começando no ponto de pesquisa especificado na cadeia de conexão para determinar se um usuário existe. O usuário deve existir no contêiner especificado. As credenciais válidas fora do contêiner especificado da cadeia de conexão não serão validadas. Consulte o tópico de ActiveDirectoryMembershipProvider classe para obter mais informações sobre cadeias de conexão.

  • Se a EnablePasswordReset propriedade for true, a ActiveDirectoryMembershipProvider instância usará as credenciais configuradas para carregar a instância do usuário para verificar se o usuário foi bloqueado porque ele fez muitas tentativas com falha para alterar a resposta de senha.

Importante

Conectar-se a um controlador de domínio do Active Directory com a conta "Convidado" habilitada é uma possível ameaça à segurança. Todas as tentativas de validação feitas em um controlador de domínio do Active Directory com a conta "Convidado" habilitada terão êxito. Para melhorar a segurança ao usar um controlador de domínio do Active Directory, você deve desabilitar a conta "Convidado" no controlador de domínio.

A ActiveDirectoryMembershipProvider instância tentará uma associação simultânea com o Active Directory quando uma das seguintes condições for atendida:

Além disso, para que uma associação simultânea seja feita, as seguintes condições devem ser verdadeiras:

  • O servidor de diretório deve estar em execução no Windows Server 2003.

  • O sistema operacional do servidor Web que executa a ActiveDirectoryMembershipProvider instância deve dar suporte a associações simultâneas (por exemplo, Windows Server 2003).

Quando uma associação simultânea é usada, a última data de logon do usuário não é atualizada no diretório; portanto, a LastLoginDate propriedade não pode ser confiada.

Os espaços à esquerda e à direita são cortados do username parâmetro .

Aplica-se a

Confira também