ActiveDirectoryMembershipProvider.ResetPassword(String, String) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将用户密码重置为自动生成的新密码。
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
指定的用户的密码提示问题答案。
返回
指定的用户的新密码。
例外
在初始化 ResetPassword(String, String) 实例前,调用了 ActiveDirectoryMembershipProvider 方法。
EnablePasswordReset 属性值为 false
。
修整后,passwordAnswer
为空
- 或 -
passwordAnswer
的长度超过 128 个字符。
- 或 -
username
为空,或超过用户名允许的最大长度(通常为 256 个字符)。
- 或 -
username
包含逗号。
- 或 -
用户名映射到 userPrincipalName
,但 username
参数包含反斜杠。
username
所指定的用户在 Active Directory 数据存储区中不存在。
- 或 -
生成的密码不能传递自定义验证处理程序。
- 或 -
生成的密码不够复杂,无法满足 Active Directory 服务器所设置的自定义密码策略。
- 或 -
无法建立到 Active Directory 应用程序模式服务器的安全连接,因此不能设置新密码。
发生了未经处理的异常。
注解
类调用 Membership 方法,将 Active Directory 数据存储区中用户的密码重置为新的随机生成的值。 将返回新密码。
注意
方法创建的 ResetPassword 随机密码不保证在 属性中 PasswordStrengthRegularExpression 传递正则表达式。 但是,随机密码将满足 和 MinRequiredNonAlphanumericCharacters 属性建立MinRequiredPasswordLength的条件。
如果向 ResetPassword 方法提供了错误的答案,则跟踪无效密码答案尝试的内部计数器将递增 1。 这可能会导致用户在通过调用 UnlockUser 方法清除锁定状态之前无法登录。 如果提供了正确的密码答案,并且用户当前未锁定,则跟踪无效密码尝试的内部计数器将重置为零。 有关详细信息,请参阅 MaxInvalidPasswordAttempts 和 PasswordAttemptWindow 属性。
从所有参数值中剪裁前导空格和尾随空格。
可以通过首先从 Membership.Provider 属性获取对 ActiveDirectoryMembershipProvider 实例的引用来直接调用 ResetPassword 方法。
提供程序使用从连接字符串中指定的搜索点开始的子树搜索。 有关连接字符串的详细信息, ActiveDirectoryMembershipProvider 请参阅类主题。
若要在 Active Directory 服务器上设置密码, connectionProtection
必须将 属性设置为 SignAndSeal。
使用 ADAM 服务器时, connectionProtection
属性可以设置为 None,但前提是显式配置 ADAM 服务器以允许通过不安全的连接更改密码。
重要
除非用于连接到 Active Directory 服务器的凭据具有域管理员权限 (不建议) 或“重置密码”访问权限,否则无法重置密码。
若要重置密码,必须满足以下所有条件:
EnablePasswordReset 属性必须设置为
true
。必须修改 Active Directory 架构,以包含用于存储密码问题和答案的属性,以及密码答案更改的三个跟踪字段。
attributeMapPasswordQuestion
必须在应用程序配置文件中设置 、attributeMapPasswordAnswer
、attributeMapFailedPasswordAnswerCount
attributeMapFailedPasswordAnswerTime
、 和attributeMapFailedPasswordAnswerLockedTime
属性。RequiresQuestionAndAnswer 属性必须设置为
true
。连接到 Active Directory 数据存储的安全上下文 (进程帐户或显式凭据) 必须具有更改密码的足够权限。 用于连接到 Active Directory 服务器的凭据具有域管理员权限 (不建议) 或“重置密码”访问权限。
注意
在 Active Directory 服务器上设置的安全策略可能会使 方法无法 ResetPassword 生成满足策略的密码。 方法的默认实现 GeneratePassword 将生成满足运行 Windows Server 2003 SP1 的域控制器上默认密码策略的密码。 如果由于 Active Directory 服务器上的安全策略而无法重置密码, ProviderException 则会引发 。