ActiveDirectoryMembershipProvider.ResetPassword(String, String) Método

Definição

Redefine a senha de um usuário com uma nova senha gerada automaticamente.Resets a user's password to a new, automatically generated password.

public:
 override System::String ^ ResetPassword(System::String ^ username, System::String ^ passwordAnswer);
public override string ResetPassword (string username, string passwordAnswer);
override this.ResetPassword : string * string -> string
Public Overrides Function ResetPassword (username As String, passwordAnswer As String) As String

Parâmetros

username
String

O usuário para o qual redefinir a senha.The user to reset the password for.

passwordAnswer
String

A resposta da senha para o usuário especificado.The password answer for the specified user.

Retornos

String

A nova senha do usuário especificado.The new password for the specified user.

Exceções

O método ResetPassword(String, String) é chamado antes que a instância ActiveDirectoryMembershipProvider seja inicializada.The ResetPassword(String, String) method is called before the ActiveDirectoryMembershipProvider instance is initialized.

O valor da propriedade EnablePasswordReset é false.The EnablePasswordReset property value is false.

passwordAnswer é null.passwordAnswer is null.

- ou --or- username é null.username is null.

passwordAnswer está vazio após a filtragempasswordAnswer is empty after trimming - ou --or- passwordAnswer excede 128 caracteres.passwordAnswer exceeds 128 characters.

- ou --or- username está vazio ou excede o comprimento máximo permitido para nomes de usuário (normalmente 256 caracteres).username is empty, or exceeds the maximum length allowed for user names (usually 256 characters).

- ou --or- username contém vírgulas.username contains commas.

- ou --or- O nome de usuário é mapeado para userPrincipalName, mas o parâmetro username contém barras invertidas.The user name is mapped to userPrincipalName but the username parameter contains backslashes.

O usuário está bloqueado devido a muitas tentativas de logon inválidas ou muitas tentativas de redefinição da resposta da senha realizadas.The user is locked out because of too many bad logon attempts or too many attempted password-answer reset attempts.

- ou --or- passwordAnswer não corresponde à resposta de senha armazenada.passwordAnswer does not match the stored password answer.

O usuário especificado em username não existe no armazenamento de dados do Active Directory.The user specified in username does not exist in the Active Directory data store.

- ou --or- Uma senha gerada não passa um manipulador de validação personalizado.A generated password does not pass a custom validation handler.

- ou --or- A senha gerada não é complexa o suficiente para atender às políticas de senha personalizadas definidas no servidor do Active Directory.The generated password is not complex enough to satisfy custom password policies set on the Active Directory server.

- ou --or- Não é possível realizar uma conexão segura para um servidor do AD LDS para definir a nova senha.A secure connection cannot be made to an Active Directory Application Mode server to set the new password.

Ocorreu uma exceção sem tratamento.An unhandled exception occurred.

Comentários

O método é chamado pela Membership classe para redefinir a senha para um usuário no repositório de dados Active Directory para um novo valor gerado aleatoriamente.The method is called by the Membership class to reset the password for a user in the Active Directory data store to a new randomly generated value. A nova senha é retornada.The new password is returned.

Observação

A senha aleatória criada pelo ResetPassword método não é garantida para passar a expressão regular na PasswordStrengthRegularExpression propriedade.The random password created by the ResetPassword method is not guaranteed to pass the regular expression in the PasswordStrengthRegularExpression property. No entanto, a senha aleatória atenderá aos critérios estabelecidos MinRequiredPasswordLength pelas MinRequiredNonAlphanumericCharacters Propriedades e.However, the random password will meet the criteria established by the MinRequiredPasswordLength and MinRequiredNonAlphanumericCharacters properties.

Se uma resposta incorreta for fornecida para o ResetPassword método, o contador interno que acompanha as tentativas de resposta de senha inválidas será incrementado em um.If an incorrect answer is supplied to the ResetPassword method, the internal counter that tracks invalid password-answer attempts is incremented by one. Isso pode fazer com que o usuário não consiga efetuar logon até que o status do bloqueio seja apagado por uma chamada para o UnlockUser método.This can result in the user being unable to log on until the lock status is cleared by a call to the UnlockUser method. Se a resposta de senha correta for fornecida e o usuário não estiver bloqueado no momento, o contador interno que acompanha as tentativas de senha inválidas será redefinido para zero.If the correct password answer is supplied and the user is not currently locked out, then the internal counter that tracks invalid password attempts is reset to zero. Para obter mais informações, consulte MaxInvalidPasswordAttempts as PasswordAttemptWindow Propriedades e.For more information, see the MaxInvalidPasswordAttempts and PasswordAttemptWindow properties.

Espaços à esquerda e à direita são cortados de todos os valores de parâmetro.Leading and trailing spaces are trimmed from all parameter values.

Você pode chamar o ResetPassword método diretamente primeiro obtendo uma referência à ActiveDirectoryMembershipProvider instância da Membership.Provider propriedade.You can call the ResetPassword method directly by first obtaining a reference to the ActiveDirectoryMembershipProvider instance from the Membership.Provider property.

O provedor usa uma pesquisa de subárvore iniciada no ponto de pesquisa especificado na cadeia de conexão.The provider uses a subtree search starting at the search point specified in the connection string. Consulte o ActiveDirectoryMembershipProvider tópico de classe para obter mais informações sobre cadeias de conexão.See the ActiveDirectoryMembershipProvider class topic for more information about connection strings.

Para definir senhas em um servidor de Active Directory, o connectionProtection atributo deve ser definido como SignAndSeal .To set passwords on an Active Directory server, the connectionProtection attribute must be set to SignAndSeal.

Ao usar um servidor ADAM, o connectionProtection atributo pode ser definido como None , mas somente se você configurar explicitamente o servidor Adam para permitir alterações de senha em conexões não seguras.When using an ADAM server, the connectionProtection attribute can be set to None, but only if you explicitly configure the ADAM server to allow password changes over unsecured connections.

Importante

Você não pode redefinir senhas, a menos que as credenciais usadas para se conectar ao servidor de Active Directory tenham direitos de administrador de domínio (não recomendado) ou o direito de acesso "Redefinir senha".You cannot reset passwords unless the credentials used to connect to the Active Directory server have either Domain Administrator rights (not recommended) or the "reset password" access right.

Para redefinir uma senha, todas as condições a seguir devem ser verdadeiras:To reset a password, all of the following conditions must be true:

  • A propriedade EnablePasswordReset precisa ser definida como true.The EnablePasswordReset property must be set to true.

  • O esquema de Active Directory deve ser modificado para conter atributos para armazenar a pergunta e a resposta de senha e os três campos de controle para alterações de resposta de senha.The Active Directory schema must be modified to contain attributes for storing the password question and answer, and the three tracking fields for password answer changes.

  • Os attributeMapPasswordQuestion atributos,, attributeMapPasswordAnswer attributeMapFailedPasswordAnswerCount , attributeMapFailedPasswordAnswerTime e attributeMapFailedPasswordAnswerLockedTime devem ser definidos no arquivo de configuração do aplicativo.The attributeMapPasswordQuestion, attributeMapPasswordAnswer, attributeMapFailedPasswordAnswerCount, attributeMapFailedPasswordAnswerTime, and attributeMapFailedPasswordAnswerLockedTime attributes must be set in the application configuration file.

  • A propriedade RequiresQuestionAndAnswer precisa ser definida como true.The RequiresQuestionAndAnswer property must be set to true.

  • O contexto de segurança para se conectar ao armazenamento de dados de Active Directory (a conta de processo ou as credenciais explícitas) deve ter privilégios suficientes para alterar as senhas.The security context for connecting to the Active Directory data store (either the process account or the explicit credentials) must have sufficient privileges to change passwords. As credenciais usadas para se conectar ao servidor de Active Directory têm direitos de administrador de domínio (não recomendado) ou o direito de acesso "Redefinir senha".The credentials used to connect to the Active Directory server have either Domain Administrator rights (not recommended) or the "reset password" access right.

Observação

As políticas de segurança definidas no servidor de Active Directory podem tornar impossível para o ResetPassword método gerar uma senha que satisfaça as políticas.Security policies set on the Active Directory server may make it impossible for the ResetPassword method to generate a password that satisfies the policies. A implementação padrão do GeneratePassword método irá gerar senhas que satisfaçam as políticas de senha padrão em controladores de domínio que executam o Windows Server 2003 SP1.The default implementation of the GeneratePassword method will generate passwords that satisfy the default password policies on domain controllers running Windows Server 2003 SP1. Se a senha não puder ser redefinida devido a políticas de segurança no servidor de Active Directory, um ProviderException será lançado.If the password cannot be reset due to security policies on the Active Directory server, a ProviderException is thrown.

Aplica-se a