在Active Directory中密码过期时检查用户密码的有效性

时间:2013-04-30 07:04:50

标签: active-directory adfs2.0

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

How to check AD user credentials when the user password is expired or "user must change password at next logon"

这种方法是否允许我检查过期密码的有效性?我试过这种方法,它似乎对我不起作用。

1 个答案:

答案 0 :(得分:1)

是的 - ValidateCredentials API提供了太多的误报。

这是一种黑色艺术,但你可以检查User-Account-Control attributems-DS-User-Account-Control-Computed attribute这两个都有“密码过期”位。

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