gpt4 book ai didi

ASP.NET C# Active Directory - 查看用户密码过期还有多长时间

转载 作者:行者123 更新时间:2023-12-02 14:33:09 24 4
gpt4 key购买 nike

我有一个有趣的问题,我正在编写一个密码管理网页/服务,我正在尝试找到一种方法来确定用户的密码何时过期,以便我可以用它手动重置他们的其他密码并发送一个电子邮件等

我遇到的问题是,当尝试循环访问我的用户时,我发现大部分用户没有 pwdlastset 属性,因此我无法确定它何时到期。

因此,除了使用 pwdlastset 属性和计算剩余时间之外,我想我正在寻找一种检查用户密码何时过期的好方法。

非常感谢。

最佳答案

它实际上比你一开始想象的要复杂得多......

  • 为了了解密码的有效期,您需要阅读“域策略”并找出答案

然后:

  • 如果用户在其“userAccountControl”中设置了“UF_DONT_EXPIRE_PASSWD”标志,则其密码永远不会过期
  • 如果“pwdLastSet”值(“ADSLargeInteger”或 Int64 值,一开始就很难读取)为 0,则用户下次登录时必须更改密码
  • 如果“pwdLastSet”值为-1,则从未设置过密码
  • 仅当上述情况均不成立时,“pwdLastSet”值才包含上次设置密码的日期,您可以将域策略中的“MaxPasswordAge”添加到该日期,这将为您提供上次设置密码的日期。用户的密码即将过期

唷!你以为事情会这么棘手吗? :-)

马克

PS:如果您认真对待基于 .NET 的 AD 编程,您应该拥有这本书:

DevGuide

The .NET Developer's Guide to Directory Services Programming

这本书包含所有的好东西,例如确定用户的密码到期日期、确定用户帐户锁定状态等等 - 强烈推荐! Joe 和 Ryan 出色地完成了将所有这些信息整合在一起并进行解释的工作,以便即使是像我这样的普通 Joe 程序员也能理解它:-)

关于ASP.NET C# Active Directory - 查看用户密码过期还有多长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1362977/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com