ActiveDirectoryMembershipProvider.ResetPassword(String, String) 方法

定义

将用户密码重置为自动生成的新密码。

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

参数

username
String

要为其重置密码的用户。

passwordAnswer
String

指定的用户的密码提示问题答案。

返回

指定的用户的新密码。

例外

passwordAnswernull

usernamenull

修整后,passwordAnswer 为空

- 或 -

passwordAnswer 的长度超过 128 个字符。

- 或 -

username 为空,或超过用户名允许的最大长度(通常为 256 个字符)。

- 或 -

username 包含逗号。

- 或 -

用户名映射到 userPrincipalName,但 username 参数包含反斜杠。

由于多次登录失败或多次重置密码提示问题失败,用户被锁定。

- 或 -

passwordAnswer 与存储的密码提示问题答案不一致。

username 所指定的用户在 Active Directory 数据存储区中不存在。

- 或 -

生成的密码不能传递自定义验证处理程序。

- 或 -

生成的密码不够复杂,无法满足 Active Directory 服务器所设置的自定义密码策略。

- 或 -

无法建立到 Active Directory 应用程序模式服务器的安全连接,因此不能设置新密码。

发生了未经处理的异常。

注解

类调用 Membership 方法,将 Active Directory 数据存储区中用户的密码重置为新的随机生成的值。 将返回新密码。

注意

方法创建的 ResetPassword 随机密码不保证在 属性中 PasswordStrengthRegularExpression 传递正则表达式。 但是,随机密码将满足 和 MinRequiredNonAlphanumericCharacters 属性建立MinRequiredPasswordLength的条件。

如果向 ResetPassword 方法提供了错误的答案,则跟踪无效密码答案尝试的内部计数器将递增 1。 这可能会导致用户在通过调用 UnlockUser 方法清除锁定状态之前无法登录。 如果提供了正确的密码答案,并且用户当前未锁定,则跟踪无效密码尝试的内部计数器将重置为零。 有关详细信息,请参阅 MaxInvalidPasswordAttemptsPasswordAttemptWindow 属性。

从所有参数值中剪裁前导空格和尾随空格。

可以通过首先从 Membership.Provider 属性获取对 ActiveDirectoryMembershipProvider 实例的引用来直接调用 ResetPassword 方法。

提供程序使用从连接字符串中指定的搜索点开始的子树搜索。 有关连接字符串的详细信息, ActiveDirectoryMembershipProvider 请参阅类主题。

若要在 Active Directory 服务器上设置密码, connectionProtection 必须将 属性设置为 SignAndSeal

使用 ADAM 服务器时, connectionProtection 属性可以设置为 None,但前提是显式配置 ADAM 服务器以允许通过不安全的连接更改密码。

重要

除非用于连接到 Active Directory 服务器的凭据具有域管理员权限 (不建议) 或“重置密码”访问权限,否则无法重置密码。

若要重置密码,必须满足以下所有条件:

  • EnablePasswordReset 属性必须设置为 true

  • 必须修改 Active Directory 架构,以包含用于存储密码问题和答案的属性,以及密码答案更改的三个跟踪字段。

  • attributeMapPasswordQuestion必须在应用程序配置文件中设置 、attributeMapPasswordAnswerattributeMapFailedPasswordAnswerCountattributeMapFailedPasswordAnswerTime、 和 attributeMapFailedPasswordAnswerLockedTime 属性。

  • RequiresQuestionAndAnswer 属性必须设置为 true

  • 连接到 Active Directory 数据存储的安全上下文 (进程帐户或显式凭据) 必须具有更改密码的足够权限。 用于连接到 Active Directory 服务器的凭据具有域管理员权限 (不建议) 或“重置密码”访问权限。

注意

在 Active Directory 服务器上设置的安全策略可能会使 方法无法 ResetPassword 生成满足策略的密码。 方法的默认实现 GeneratePassword 将生成满足运行 Windows Server 2003 SP1 的域控制器上默认密码策略的密码。 如果由于 Active Directory 服务器上的安全策略而无法重置密码, ProviderException 则会引发 。

适用于

另请参阅