我正在使用Active Directory中的用户密码已过期的情况。我正在尝试检查用户是否输入了有效的用户名和相应的有效但已过期的密码。如果用户输入有效的用户名并更正了过期的密码,我将重定向到可以重置密码的页面。但是,如果用户输入了错误的过期密码,则应通过标准消息UserName and or password is not correct
通知用户。我在网上查了一下,在将validatecredentials
设置为-1以禁用pwdLastSet
后,他们正在讨论使用user must change password at next logon
方法。
这种方法是否允许我检查过期密码的有效性?我试过这种方法,它似乎对我不起作用。
答案 0 :(得分:1)
是的 - ValidateCredentials API提供了太多的误报。
这是一种黑色艺术,但你可以检查User-Account-Control attribute和ms-DS-User-Account-Control-Computed attribute这两个都有“密码过期”位。
我通常使用上述内容,但有些人建议直接使用Windows API - 请参阅Active Directory (LDAP) - Check account locked out / Password expired。