ActiveDirectoryMembershipProvider.ChangePasswordQuestionAndAnswer Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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.
O método ChangePasswordQuestionAndAnswer(String, String, String, String) é chamado antes que a instância ActiveDirectoryMembershipProvider seja inicializada.
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 sertrue
.attributeMapPasswordQuestion
eattributeMapPasswordAnswer
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.