0

我在 Active Directory 中用户密码已过期的情况下工作。我正在尝试检查用户是否输入了有效的用户名和相应的有效但过期的密码。如果用户输入了有效的用户名和正确的过期密码,我会将他们重定向到他们可以重置密码的页面。但是,如果用户输入了错误的过期密码,则应以标准消息通知用户UserName and or password is not correct。我在网上查了一下,他们正在谈论validatecredentials设置pwdLastSet为 -1 后使用方法来禁用user must change password at next logon

如何在用户密码过期或“用户下次登录时必须更改密码”时检查 AD 用户凭据

这种方法可以让我检查过期密码的有效性吗?我尝试了这种方法,但它似乎对我不起作用。

4

1 回答 1

1

是的 - ValidateCredentials API 给出了太多的误报。

这是一种魔法,但您可以检查User-Account-Control 属性ms-DS-User-Account-Control-Computed 属性,它们都具有“密码过期”位。

我通常使用上述方法,但有些人建议直接使用 Windows API - 参考Active Directory (LDAP) - Check account locked out / Password expired

于 2013-04-30T23:06:29.963 回答