C#UserPrincipal - ChangePassword强制执行策略但SetPassword不强制执行策略?

时间:2013-11-18 19:55:04

标签: c# directoryservices

我有一个应用程序,当用户抱怨他们忘记了他们的密码时,管理员可以设置用户密码。

我的应用程序使用(UserPrincipal).SetPassword(newPassword);并且有效,但它完全忽略了策略,并允许用户设置他们想要的任何内容。关于策略的大多数事情我可以自己检索和应用(如长度),但有些事情超出了我手动强制执行的能力(如历史记录)。

另一方面,

ChangePassword强制执行策略,但它需要旧密码才能运行,这对忘记密码的用户来说是无用的。

有没有办法充分利用这两种方法?

1 个答案:

答案 0 :(得分:2)

将新密码设置为随机字符串,自动将邮件发送给用户,并可选择强制他们在下次登录时更改密码。

除了用户获取未加密的密码之外没有其他人,随机字符串很可能比任何策略强制要强,即使你不能强制用户更改他们的密码,他们也可能想要这样做,而不是记住随机字符串。