设置搜索范围

若要提高搜索性能,请将搜索范围限制为单个对象或对象子集。对于此任务,DirectorySearcher 提供了 SearchScope 属性。

可以将搜索范围设定为以下三种设置之一:

  • Base。搜索绑定的对象,且仅当该对象与搜索条件匹配时才返回它。例如,如果绑定到域,则它将搜索该域中的所有内容,但仅返回绑定的对象。
  • OneLevel。搜索与绑定对象处于相同级别的所有对象。例如,如果绑定到组,则它将搜索与该组处于相同级别的所有组或其他对象。
  • Subtree。搜索绑定对象的子树中包含的所有对象,包括基对象。例如,如果绑定到服务器,则它将搜索层次结构中处于相同级别或该服务器下的所有对象。这是默认值。如果对 DirectorySynchronization 对象执行目录同步搜索,则要求应用程序指定 Subtree 范围。

下图说明域层次结构中每个范围的适合程度。

域搜索范围

下面的 C# 代码示例说明如何使用 SearchScope 属性搜索子树。

DirectoryEntry entry = new DirectoryEntry("LDAP://CN=users,DC=fabrikam,DC=com");
DirectorySearcher mySearcher = new DirectorySearcher(entry);
mySearcher.SearchScope = SearchScope.Subtree;
mySearcher.Filter = "(&(objectClass=user)(anr=test*))";
SearchResultCollection ResEnt = mySearcher.FindAll();
{
    // Handle results.
}
// Handle exceptions.

另请参见

参考

System.DirectoryServices
DirectorySearcher
SearchScope
DirectorySynchronization

概念

搜索目录

Send comments about this topic to Microsoft.

版权所有 (C) 2007 Microsoft Corporation。保留所有权利。