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 包含逗号。

-或-

用户名映射到 userPrincipalNameusername 参数包含反斜杠。

由于登录尝试次数过多或尝试密码应答重置尝试过多,用户被锁定。

-或-

passwordAnswer 与存储的密码答案不匹配。

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

-或-

生成的密码不会通过自定义验证处理程序。

-或-

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

-或-

无法与 Active Directory 应用程序模式服务器建立安全连接以设置新密码。

发生未经处理的异常。

注解

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

注释

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

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

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

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

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

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

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

重要

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

若要重置密码,以下所有条件都必须为 true:

  • EnablePasswordReset属性必须设置为true

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

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

  • RequiresQuestionAndAnswer属性必须设置为true

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

注释

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

适用于

另请参阅