Isabella
---- I fell upon the thorn of life, I bleed.

源文件来自:http://www.adchina.org.cn/html/2005/04/20050429155631-1.shtml
搜索
Active Directory 层次结构

可以使用 DirectorySearcher 类对使用轻量目录访问协议(Lightweight Directory Access ProtocolLDAP)的 Active Directory 层次结构进行搜索和执行查询。LDAP 是唯一允许目录搜索的提供程序。管理员可以修改和删除在层次结构中找到的对象。有关更多信息,请参见 Active Directory 对象简介。当实例化 DirectorySearcher 对象时,向其传递要在绑定目录系统中搜索的根目录,还可以选择向其传递用来指定要检索内容的筛选器以及要检索的属性的列表。也可以设置属性来确定以下内容:

l          是否在本地计算机上缓存搜索结果;使用 CacheResults 属性对此进行设置。当设置为 true 时,就会将目录信息存储在本地计算机上。

l          搜索花费多长时间;使用 TimeLimit 属性对此进行设置。

l          是只检索属性名,还是同时检索名称和值;使用 PropertyNamesOnly 属性对此进行设置。

l          是否执行分页搜索,这种搜索每次只返回特定数量的结果;使用 PageSize 属性对此进行设置。

l          通过设置 SizeLimit 属性,确定要返回的最大项数。

注意如果返回的最大项数和 TimeLimit 属性超过服务器上设置的限制,则服务器设置将重写组件设置。

搜索 Active Directory 层次结构

1.         创建 DirectorySearcher 对象的实例,并将其初始化为要搜索的 DirectoryEntry 值。创建 SearcherResultsEntry 对象的实例。

2.         DirectorySearcher 对象的 Filter 属性设置为要搜索的值。

3.         通过调用 DirectorySearcher FindAll 方法来初始化搜索。该 DirectorySearcher 对象将返回目标目录中其值与 Filter 属性中指定的值匹配的所有对象的集合。

以下示例在目录中搜索用户名“John”,并循环访问返回的集合,将每个对象的路径写到控制台。请注意,本示例不搜索子目录。

 

' Visual Basic

Dim entry As New DirectoryServices.DirectoryEntry("LDAP://Path")

Dim mySearcher As New System.DirectoryServices.DirectorySearcher(entry)

Dim result As System.DirectoryServices.SearchResult

mySearcher.Filter = ("(anr= John)")

For Each result In mySearcher.FindAll()

   Console.WriteLine(result.GetDirectoryEntry().Path)

Next

 

// C#

System.DirectoryServices.DirectoryEntry entry =

   new System.DirectoryServices.DirectoryEntry("LDAP://Path");

System.DirectoryServices.DirectorySearcher mySearcher = new

   System.DirectoryServices.DirectorySearcher(entry);

mySearcher.Filter = ("(anr= John)");

foreach(System.DirectoryServices.SearchResult result in

   mySearcher.FindAll())

{

   Console.WriteLine( result.GetDirectoryEntry().Path );

}

posted on 2006-07-14 13:42  李昀璟  阅读(188)  评论(0)    收藏  举报