【发布时间】:2010-10-26 14:11:51
【问题描述】:
我有一个使用 ActiveDirectoryMembershipProvider 的表单身份验证的 web 应用。 效果很好...用户可以成功登录。
一旦用户登录,他可以更改密码。 我们使用一个 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)
【问题讨论】:
-
能否提供准确的 COM 异常信息(也来自可能存在的 innerException)?
-
我添加了抛出的异常。我在测试中输入的密码非常复杂……所以我认为该消息不准确。感谢您的关注。
标签: asp.net active-directory asp.net-membership