【发布时间】:2011-12-23 22:50:38
【问题描述】:
我正在开发一个列出活动目录用户的许多属性的工具。目前,我可以通过向 lastPasswordSet 属性添加 90 天(典型策略)来显示到期日期。但是,有些帐户设置为永不过期。
我做了一些研究,发现如果属性在转换为长整数时等于 9223372036854775807,那么密码永远不会过期(或者我被告知)。
我遇到的问题是,我查找的每个帐户都有 9223372036854775807 作为 accountExpires 值。我有 microsoft AD 工具,可以验证哪些帐户实际上设置为永不过期,哪些帐户在 90 天内过期。我不确定我做错了什么:
public bool doesPWExpire(string userDN)
{
DirectoryEntry ent = new DirectoryEntry(userDN);
//get account expires property
LargeInteger passChanged = ent.Properties["accountExpires"].Value as LargeInteger;
//convert to data type long
long int64Value = (long)((uint)passChanged.LowPart | (((long)passChanged.HighPart) << 32));
if (int64Value == 9223372036854775807)
{
return false;
}
else
{
return true;
}
}
【问题讨论】:
标签: c# active-directory passwords