我有一个Web应用程序,使用ActiveDirectoryMembershipProvider进行表单身份验证。这很好...用户可以成功登录。
一旦用户登录,他就可以更改密码。我们使用ChangePassword控件检索成员资料,并使用旧密码和新密码来更改用户的密码。但是这样不起作用。
抛出的异常消息是密码不符合密码策略(不是提供程序的消息,而是底层COM对象的消息)。但事实并非如此,因为在ActiveDirectory控制台中更改密码确实有效。当使用ActiveDirectory控制台时,我们使用了一个非常简单的密码:“Password01”。
ActiveDirectory中的用户设置为允许更改密码。我们所有的用户都存储在特定的OU中,连接到AD的连接字符串也指向这个OU。再次说明,连接成功,因为我们可以进行登录。
还有其他什么可能阻止我们更改密码吗?
异常信息
System.Web.Security.MembershipPasswordException: The password supplied is invalid.
Passwords must conform to the password strength requirements configured for the default provider.
---> System.Runtime.InteropServices.COMException (0x800708C5): The password does not meet the password policy requirements. Check the minimum password length, password complexity and password history requirements. (Exception from HRESULT: 0x800708C5)
--- End of inner exception stack trace ---
at System.Web.Security.ActiveDirectoryMembershipProvider.ChangePassword(String username, String oldPassword, String newPassword)
at System.Web.Security.MembershipUser.ChangePassword(String oldPassword, String newPassword)