使用C#中的DirectorySearcher来获得活动目录中的组织结构与用户等信息,并在展示成树形结构(附源代码)
2015-03-08 16:01
399 查看
使用C#中的DirectorySearcher来获得活动目录中的组织结构与用户等信息,并在展示成树形结构(附源代码)
对于C#来说,取得活动目录中的组织结构相对简单,因为其在System.DirectoryServices命名空间中内置了DirectorySearcher的方法,我们可以组合多种过滤方式,来达到取得活动目录中的所有信息,当然,我现在还没有找到可以得到域用户密码的方式 :)
以下是关键片段
1private static SearchResultCollection _ADHelper(string domainADsPath, string username, string password, string schemaClassNameToSearch)
2 {
3 DirectorySearcher searcher = new DirectorySearcher();
4
5 searcher.SearchRoot = new DirectoryEntry(domainADsPath,
6 username, password);
7 searcher.Filter = "(objectClass=" + schemaClassNameToSearch + ")";
8
9 searcher.SearchScope = SearchScope.Subtree;
10 searcher.Sort = new SortOption("name",
11 SortDirection.Ascending);
12 // If there is a large set to be return ser page size for a paged search
13 searcher.PageSize = 512;
14
15 searcher.PropertiesToLoad.AddRange(new string[] { "name", "Path", "displayname", "samaccountname", "mail" });
16
17 SearchResultCollection results = searcher.FindAll();
18 return results;
19 }
参数domainADsPath是活动目录的域名,使用类似"LDAP://域名"的形式
参数schemaClassNameToSearch是过滤条件,基本上有以下三个选择,更多选择请参考微软的网站
1. objectClass=organizationalUnit 查询条件是所有的组织单元(OU)
2. objectClass=group 查询条件是所有的组(GROUP)
3. objectClass=user 查询条件是所有的用户(USER)
searcher.PropertiesToLoad.AddRange(new string[] { "name", "Path", "displayname", "samaccountname", "mail" });
这一句是指对范围内的属性进行加载,以提高效率。
效果图
点击这里下载源代码
对于C#来说,取得活动目录中的组织结构相对简单,因为其在System.DirectoryServices命名空间中内置了DirectorySearcher的方法,我们可以组合多种过滤方式,来达到取得活动目录中的所有信息,当然,我现在还没有找到可以得到域用户密码的方式 :)
以下是关键片段
1private static SearchResultCollection _ADHelper(string domainADsPath, string username, string password, string schemaClassNameToSearch)
2 {
3 DirectorySearcher searcher = new DirectorySearcher();
4
5 searcher.SearchRoot = new DirectoryEntry(domainADsPath,
6 username, password);
7 searcher.Filter = "(objectClass=" + schemaClassNameToSearch + ")";
8
9 searcher.SearchScope = SearchScope.Subtree;
10 searcher.Sort = new SortOption("name",
11 SortDirection.Ascending);
12 // If there is a large set to be return ser page size for a paged search
13 searcher.PageSize = 512;
14
15 searcher.PropertiesToLoad.AddRange(new string[] { "name", "Path", "displayname", "samaccountname", "mail" });
16
17 SearchResultCollection results = searcher.FindAll();
18 return results;
19 }
参数domainADsPath是活动目录的域名,使用类似"LDAP://域名"的形式
参数schemaClassNameToSearch是过滤条件,基本上有以下三个选择,更多选择请参考微软的网站
1. objectClass=organizationalUnit 查询条件是所有的组织单元(OU)
2. objectClass=group 查询条件是所有的组(GROUP)
3. objectClass=user 查询条件是所有的用户(USER)
searcher.PropertiesToLoad.AddRange(new string[] { "name", "Path", "displayname", "samaccountname", "mail" });
这一句是指对范围内的属性进行加载,以提高效率。
效果图
点击这里下载源代码
相关文章推荐
- 使用C#中的DirectorySearcher来获得活动目录中的组织结构与用户等信息,并在展示成树形结构(附源代码)
- 使用C#获得系统信息
- 活动目录里导出用户信息后在Access里update数据的"风波" 推荐
- Delegate 类 概念 与MVC模式不同,model/view结构没有用于与用户交互的完全独立的组件。一般来讲, view负责把数据展示给用户,也处理用户的输入。为了获得更多的灵性性,交互通过d
- 用户配置文件和在活动目录中使用组
- 使用ztree展示树形菜单结构
- php【递归循环出树形结构】的一个用户下面的所有人信息之【两种方法的对比】
- 在活动目录上使用csvde导入csv文件批量创建域用户
- C#使用Directoryinfo类获得目录信息和属性的方法
- Java基础之IO流,使用File类以树形结构打印指定文件目录
- 对110W知乎用户信息进行分析,使用echarts+servlet+jsp可视化展示
- 使用ADRecycleBin还原AD活动目录用户组织对象
- 使用C#获得系统信息
- 使用C#获得系统信息
- mac系统中使用tree 命令展示目录树结构
- java实现遍历文件目录,并在控制台以树形结构展示搜索出来的文件
- MySql如何根据输入的id获得树形结构的子节点列表:使用自连+SUBSTRING_INDEX函数
- 活动目录实战之六 使用ADMT 3.2迁移用户和计算机
- sharepoint 2007 使用open with windows explorer的方式打开sharepoint 目录,然后批量复制文件,会导致被复制的文件信息被修改成当前用户和当前时间