ActiveDirectoryMembershipProvider.ChangePassword 方法

定义

更改指定用户的密码。

public:
 override bool ChangePassword(System::String ^ username, System::String ^ oldPassword, System::String ^ newPassword);
public override bool ChangePassword (string username, string oldPassword, string newPassword);
override this.ChangePassword : string * string * string -> bool
Public Overrides Function ChangePassword (username As String, oldPassword As String, newPassword As String) As Boolean

参数

username
String

要为其更新密码的用户的名称。

oldPassword
String

指定的用户的当前密码。

newPassword
String

指定的用户的新密码。

返回

如果密码更新成功,则为 true;否则为 false

例外

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

- 或 -

username 包含逗号。

- 或 -

用户名映射到 userPrincipalName 特性,并且 username 参数包含反斜杠。

- 或 -

oldPasswordnewPassword 是长度为零的字符串。

- 或 -

oldPasswordnewPassword 超过最大密码长度(通常为 128 个字符)。

- 或 -

newPassword 小于 MinRequiredPasswordLength 属性所指定的最小密码长度

- 或 -

newPassword 包含的非字母字符数比 MinRequiredNonAlphanumericCharacters 属性所指定的数目少。

- 或 -

根据 PasswordStrengthRegularExpression 属性中定义的正则表达式进行的 newPassword 验证失败。

usernamenull

oldPasswordnull

newPasswordnull

newPassword 不满足 Active Directory 服务器所定义的复杂性要求。

未能建立到 Active Directory 应用程序模式服务器的安全连接。

发生了未经处理的异常。

注解

方法 ChangePassword 用于更新 Active Directory 数据存储中的用户密码。 无论实例配置为使用何种凭据 ActiveDirectoryMembershipProvider ,提供程序都会使用 usernameoldPassword 参数作为连接凭据连接到 Active Directory 服务器。

EnablePasswordReset如果 属性为 true,则用户无法更改其密码(如果帐户以前被锁定),因为用户尝试回答密码问题过多。 在更改密码之前, PasswordAnswerAttemptLockoutDuration 用户需要等待 属性中指定的分钟数。

如果密码更改成功,并且 EnablePasswordReset 属性为 true,则重置用户错误的密码应答跟踪计数器。

提供程序通过从连接字符串中指定的搜索点开始对用户名执行子树搜索来查找要更新的用户实例。 有关连接字符串的详细信息, ActiveDirectoryMembershipProvider 请参阅类主题。

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

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

适用于

另请参阅