C# UserPrincipal.ChangePassword引发PasswordException

C# UserPrincipal.ChangePassword引发PasswordException,c#,active-directory,change-password,C#,Active Directory,Change Password,我为我的员工创建了一个密码重置页面,对于UserPrincipal对象,我执行以下操作: UserPrincipal user = Helpers.LDAPHelper.GetUserPrincipal(model.EmailAddress); string temporary = Membership.GeneratePassword(12, 4); user.SetPassword(temporary); user.ChangePassword(temporary, model.Conf

我为我的员工创建了一个密码重置页面,对于
UserPrincipal
对象,我执行以下操作:

UserPrincipal user = Helpers.LDAPHelper.GetUserPrincipal(model.EmailAddress);

string temporary = Membership.GeneratePassword(12, 4);

user.SetPassword(temporary);
user.ChangePassword(temporary, model.ConfirmPassword);
user.SetPassword
调用工作正常,但不会触发密码已更改,因此我所做的任何密码期限跟踪(提醒用户在密码过期之前重置密码)都不起作用。因此,我想更改密码,因为
ChangePassword
方法需要当前密码,所以我设置了一个临时密码,然后将其用作当前密码。但是,每次它都会抛出一个
密码异常

“密码不符合密码策略要求。请检查 最小密码长度、密码复杂性和密码历史记录 要求。(HRESULT的例外:0x800708C5)

有人能告诉我我做错了什么吗

哦,我忘了包括组策略设置:
引发异常的应该是新密码,新密码是字符串吗?此外,可能还有其他密码策略,如默认策略。

新密码长度至少为6个字符。这是新密码的唯一要求。正在应用的唯一策略是通过组策略。我已经查看了其他的策略,但是没有一个已经定义了这些设置。我认为唯一需要检查的是服务器上的本地策略(不是gpedit),我还不确定,但正在验证这篇文章提到的内容:好吧,在进一步调查之后,我们有一个流氓技术人员创建了另一个策略(名字不清楚)这也设置了密码要求。删除该政策后,一切都很好。对不起,浪费了别人的时间。