栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何从活动目录中获取用户列表?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何从活动目录中获取用户列表?

如果您不熟悉Active Directory,建议您先了解Active Directory如何存储数据。

Active Directory实际上是LDAP服务器。LDAP服务器中存储的对象是分层存储的。这与将文件存储在文件系统中非常相似。这就是为什么它被命名为
目录 服务器和Active Directory的原因

Active Directory上的容器和对象可以通过来指定

distinguishedname
。专有名称就是这样
CN=SomeName,CN=SomeDirectory,DC=yourdomain,DC=com
。像传统的关系数据库一样,您可以对LDAP服务器运行查询。这称为LDAP查询。

有多种方法可以在.NET中运行LDAP查询。您可以使用的DirectorySearcher从

System.DirectoryServices
或SearchRequest的
System.DirectoryServices.Protocol

对于你的问题,因为你是问找到用户主体对象而言,我认为最直观的方法是使用PrincipalSearcher从

System.DirectoryServices.AccountManagement
。您可以从Google轻松找到许多不同的示例。这是一个示例,它可以完全满足您的要求。

using (var context = new PrincipalContext(ContextType.Domain, "yourdomain.com")){    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("SAM account name   : " + de.Properties["samAccountName"].Value); Console.WriteLine("User principal name: " + de.Properties["userPrincipalName"].Value); Console.WriteLine();        }    }}Console.ReadLine();

请注意,在AD用户对象上,有许多属性。特别是

givenName
会给您
First Name
sn
会给您
LastName
。关于用户名。我认为您的意思是用户登录名。请注意,AD用户对象上有两个登录名。一个是
samAccountName
,也称为Windows
2000之前的用户登录名。
userPrincipalName
通常在Windows 2000之后使用。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/576244.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号