ActiveDirectoryMembershipProvider.ChangePasswordQuestionAndAnswer Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Atualiza a pergunta e resposta da palavra-passe para um utilizador na loja 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 utilizador para alterar a palavra-passe e a resposta para.
- password
- String
A palavra-passe do utilizador especificado.
- newPasswordQuestion
- String
A nova pergunta de palavra-passe para o utilizador especificado.
- newPasswordAnswer
- String
A resposta da nova palavra-passe para o utilizador especificado.
Devoluções
true se a atualização fosse bem-sucedida; caso contrário, false. Um valor de false também é devolvido se a palavra-passe estiver incorreta, o utilizador estiver bloqueado ou se o utilizador não existir no armazenamento de dados Active Directory.
Exceções
O administrador não mapeou os campos de perguntas e respostas da palavra-passe para atributos do esquema do Active Directory.
username está vazio ou excede o comprimento máximo do nome de utilizador (normalmente 256 caracteres).
-ou-
username contém vírgulas.
-ou-
O nome de utilizador está mapeado para o userPrincipalName atributo e o username parâmetro contém barras adicionais.
-ou-
password é uma corda de comprimento zero.
-ou-
password ultrapassa o comprimento máximo da palavra-passe (normalmente 128 caracteres).
-ou-
newPasswordQuestion é vazio e o RequiresQuestionAndAnswer valor da propriedade é true.
-ou-
newPasswordQuestion ultrapassa os 256 caracteres.
-ou-
newPasswordAnswer ultrapassa os 128 caracteres após a resposta ser encriptada.
username é null.
-ou-
password é null.
-ou-
newPasswordQuestion é null e RequiresQuestionAndAnswer propriedade é true.
-ou-
newPasswordAnswer é null e RequiresQuestionAndAnswer propriedade é true.
O elemento de configuração machineKey (ASP.NET Settings Schema) indica uma chave de encriptação automática da máquina. Deve definir explicitamente o atributo decryptionKey do elemento machineKey Element (ASP.NET Settings Schema) para armazenar respostas por palavra-passe com o ActiveDirectoryMembershipProvider.
O ChangePasswordQuestionAndAnswer(String, String, String, String) método é chamado antes da ActiveDirectoryMembershipProvider instância ser inicializada.
Observações
O método é chamado pela classe ActiveDirectoryMembershipUser para atualizar a pergunta e resposta da palavra-passe para um utilizador na loja de membros Active Directory.
Exigir uma pergunta e resposta com palavra-passe proporciona uma camada adicional de segurança ao redefinir a palavra-passe do utilizador. Ao criar um nome de utilizador, o utilizador pode fornecer uma pergunta e uma resposta que mais tarde podem ser usadas para redefinir uma palavra-passe esquecida. O ChangePasswordQuestionAndAnswer método atualiza a pergunta e resposta da palavra-passe para um utilizador membro para novos valores.
Para usar o ChangePasswordQuestionAndAnswer método, deve definir estes atributos adicionais no ficheiro de configuração da sua aplicação:
requiresQuestionAndAnswerdeve sertrue.attributeMapPasswordQuestioneattributeMapPasswordAnswerdevem ser mapeados para atributos no esquema Active Directory.
Se os critérios acima não forem cumpridos, a ProviderException é lançado na inicialização.
A instância ActiveDirectoryMembershipProvider liga-se ao armazenamento de dados Active Directory com as credenciais fornecidas nos parâmetros username e password para validar a combinação nome de utilizador/palavra-passe. A atualização efetiva da pergunta e resposta é feita com as credenciais de ligação configuradas do fornecedor.
Se for fornecida uma palavra-passe incorreta ao ChangePasswordQuestionAndAnswer método, o servidor de diretórios irá incrementar os contadores que rastreiam tentativas de palavra-passe inválidas. Isto pode resultar no bloqueio do utilizador e incapaz de iniciar sessão até que o estado do bloqueio seja resolvido por uma chamada ao UnlockUser método ou até que a duração do bloqueio especificada no diretório passe.
Se a atualização da pergunta e resposta for bem-sucedida e a EnablePasswordReset propriedade for true, os contadores de rastreio de respostas por palavra-passe do utilizador são reiniciados.
A resposta por palavra-passe é encriptada usando o método EncryptPassword antes de ser armazenada no armazenamento de dados Active Directory. A chave de encriptação e o algoritmo são especificados pelo elemento de configuração machineKey Element (ASP.NET Settings Schema). O atributo de desencriptação no elemento machineKey Element (ASP.NET Settings Schema) deve ser especificado, a classe ActiveDirectoryMembershipProvider não suporta chaves de encriptação geradas automaticamente.
O comprimento máximo para a pergunta da palavra-passe é de 256 caracteres. O comprimento máximo da resposta por palavra-passe é de 128 caracteres.
Os espaços iniciais e finais são cortados a partir de todos os valores dos parâmetros, exceto para password.
O fornecedor encontra a instância do utilizador a atualizar realizando uma pesquisa em subárvore pelo nome de utilizador a partir do ponto de pesquisa especificado na cadeia de ligação. Consulte o ActiveDirectoryMembershipProvider tópico da aula para mais informações sobre cordas de ligação.