A-A+
.NET与AD-连接与查询
1.连接
如果要连接AD服务器,首先要知道LDAP地址,LDAP地址一般形如:LADP://xxx.com。可以使用下面的代码进行连接:
- DirectoryEntry entry = new DirectoryEntry(strLDAP, strAdminUserName, strAdminPwd, AuthenticationTypes.Secure);
其中,DirectoryEntry是封装Active Directory域服务层次结构中的节点或对象的类。
2.查询
成功连接服务器后,可以对AD中的节点进行查询,比如下面的代码就是搜索指定节点下所有的人员节点:
- DirectoryEntry entry = new DirectoryEntry(strLDAP, strAdminUserName, strAdminPwd, AuthenticationTypes.Secure);
- DirectorySearcher searcher = new DirectorySearcher(entry);
- searcher.Filter = "(objectClass=user)";
- searcher.SearchScope = SearchScope.Subtree;
- earchResultCollection resultes = searcher.FindAll();
- foreach (SearchResult result in resultes)
- {
- Response.Write(result.GetDirectoryEntry().Name + "</br>");
- }
在这里,最关键的是searcher的Filter属性,此属性相当于查询条件,限制了最终结果的范围,关于此属性的说明如下:
属性值:
- 以 LDAP 格式表示的搜索筛选器,如“(objectClass=user)”。默认值为“(objectClass=*)”,它检索所有对象。
备注:
- 筛选器遵循下列原则:
- 字符串必须括在括号内。
- 表达式可以使用关系运算符:<、<=、=、>= 和 >。例如:“(objectClass=user)”。再例如:“(lastName>=Davis)”。
- 复合表达式带有前缀运算符 & 和 |。例如:“(&(objectClass=user)(lastName= Davis))”。再例如:“(&(objectClass=printer)(|(building=42)(building=43)))”。
3.辅助工具“ADExplorer”
ADExplorer是一个先进的Active Directory(AD)查看器和编辑器。您可以使用ADExplorer轻松浏览的AD数据库。
可以在这个位置下载:http://technet.microsoft.com/en-us/sysinternals/bb963907.aspx
主要界面如下: