C# 已登录用户状态
如何以编程方式访问active directory中的用户状态?尤其地 状态,如active/away/lockedout等。这是为了构建一个web快照,以查看所有已登录用户及其各自的状态 到目前为止,我可以搜索特定域下的所有用户,但没有找到他们的当前状态C# 已登录用户状态,c#,asp.net,.net,active-directory,C#,Asp.net,.net,Active Directory,如何以编程方式访问active directory中的用户状态?尤其地 状态,如active/away/lockedout等。这是为了构建一个web快照,以查看所有已登录用户及其各自的状态 到目前为止,我可以搜索特定域下的所有用户,但没有找到他们的当前状态 using (var context = new PrincipalContext(ContextType.Domain, "domain")) { using (var searcher = new PrincipalSearche
using (var context = new PrincipalContext(ContextType.Domain, "domain"))
{
using (var searcher = new PrincipalSearcher(new UserPrincipal(context)))
{
foreach (var result in searcher.FindAll())
{
DirectoryEntry de = result.GetUnderlyingObject() as DirectoryEntry;
Console.WriteLine("First Name: " + de.Properties["givenName"].Value);
Console.WriteLine("Last Name : " + de.Properties["sn"].Value);
Console.WriteLine("User principal name: " + de.Properties["userPrincipalName"].Value);
}
}
}
“离开”不是你将从Active Directory中得到的东西
您可以查看以下属性以获取所需的一些信息:
是您要查看的主要属性
在LDAP查询中使用(userAccountControl:AND:=2)
将查找禁用的用户
其他一些有用的属性包括:
- lastLogon(对于“活动”,您必须确定活动对您意味着什么)
- 锁定时间(锁定时间>0)表示它们被锁定
- accountExpires适用于过期用户
- lastLogon属性不在域控制器之间复制。这是您从中收集信息的域控制器上的最后一次登录用户时间。要确定最后一次用户登录,必须从所有DC收集属性并选择“最大值”
- lastLogonTimestamp每9-14天复制一次。lastLogontimeStamp将比当前日期晚9-14天李>