Compartilhar via


ActiveDirectoryMembershipProvider.ChangePasswordQuestionAndAnswer Método

Definição

Atualiza a pergunta e a resposta da senha para um usuário no repositório do Active Directory.

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

Parâmetros

username
String

O usuário para o qual alterar a pergunta e a resposta da senha.

password
String

A senha do usuário especificado.

newPasswordQuestion
String

A nova pergunta da senha do usuário especificado.

newPasswordAnswer
String

A nova resposta da senha do usuário especificado.

Retornos

true se a atualização for bem-sucedida, caso contrário, false. Um valor de false também é retornado se a senha está incorreta, o usuário está bloqueado ou o usuário não existe no armazenamento de dados do Active Directory.

Exceções

O administrador não mapeou os campos de pergunta e resposta de senha para os atributos de esquema do Active Directory.

username está vazio ou excede o comprimento máximo do nome de usuário (normalmente de 256 caracteres).

- ou -

username contém vírgulas.

- ou -

O nome de usuário é mapeado para o atributo userPrincipalName e o parâmetro username contém barras invertidas.

- ou -

password é uma cadeia de comprimento zero.

- ou -

password excede o comprimento máximo da senha (geralmente de 128 caracteres).

- ou -

newPasswordQuestion está vazio e o valor da propriedade RequiresQuestionAndAnswer é true.

- ou -

newPasswordQuestion excede 256 caracteres.

- ou -

newPasswordAnswer excede 128 caracteres após a resposta ser criptografada.

username é null.

- ou -

password é null.

- ou -

newPasswordQuestion é null e a propriedade RequiresQuestionAndAnswer é true.

- ou -

newPasswordAnswer é null e a propriedade RequiresQuestionAndAnswer é true.

O elemento de configuração do Elemento machineKey (Esquema de Configurações do ASP.NET) indica uma chave de criptografia do computador gerada automaticamente. É necessário definir explicitamente o atributo decryptionKey do elemento do Elemento machineKey (Esquema de Configurações do ASP.NET) para armazenar as respostas de senha com o ActiveDirectoryMembershipProvider.

Comentários

O método é chamado pela ActiveDirectoryMembershipUser classe para atualizar a pergunta e a resposta de senha para um usuário no repositório de associação do Active Directory.

Exigir uma pergunta e resposta de senha fornece uma camada adicional de segurança ao redefinir a senha de um usuário. Ao criar um nome de usuário, um usuário pode fornecer uma pergunta e uma resposta que podem ser usadas posteriormente para redefinir uma senha esquecida. O ChangePasswordQuestionAndAnswer método atualiza a pergunta e a resposta de senha de um usuário associado para novos valores.

Para usar o ChangePasswordQuestionAndAnswer método , você deve definir esses atributos adicionais no arquivo de configuração do aplicativo:

  • requiresQuestionAndAnswer deve ser true.

  • attributeMapPasswordQuestion e attributeMapPasswordAnswer devem ser mapeados para atributos no esquema do Active Directory.

Se os critérios acima não forem atendidos, um ProviderException será gerado na inicialização.

A ActiveDirectoryMembershipProvider instância se conecta ao armazenamento de dados do Active Directory com as credenciais fornecidas nos username parâmetros e password para validar a combinação de nome de usuário/senha. A atualização real da pergunta e resposta é executada com as credenciais de conexão configuradas do provedor.

Se uma senha incorreta for fornecida ao ChangePasswordQuestionAndAnswer método , o servidor de diretório incrementará os contadores que rastreiam tentativas de senha inválidas. Isso pode fazer com que o usuário seja bloqueado e não consiga fazer logon até que o status do bloqueio seja limpo por uma chamada para o UnlockUser método ou a duração bloqueada especificada no diretório passe.

Se a atualização para a pergunta e a resposta for bem-sucedida e a EnablePasswordReset propriedade for true, os contadores de acompanhamento de resposta de senha incorreta do usuário serão redefinidos.

A resposta de senha é criptografada usando o EncryptPassword método antes de ser armazenada no armazenamento de dados do Active Directory. A chave de criptografia e o algoritmo são especificados pelo elemento de configuração elemento machineKey (esquema de configurações de ASP.NET ). O atributo de descriptografia no elemento machineKey Element (ASP.NET Settings Schema) deve ser especificado, a classe não dá suporte a ActiveDirectoryMembershipProvider chaves de criptografia geradas automaticamente.

O comprimento máximo para a pergunta de senha é de 256 caracteres. O comprimento máximo para a resposta de senha é de 128 caracteres.

Espaços à esquerda e à direita são cortados de todos os valores de parâmetro, exceto para password.

O provedor localiza a instância de usuário a ser atualizada executando uma pesquisa de subárvore para o nome de usuário começando no ponto de pesquisa especificado na cadeia de conexão. Consulte o tópico de ActiveDirectoryMembershipProvider classe para obter mais informações sobre cadeias de conexão.

Aplica-se a

Confira também