选择搜索技术

下表列出的技术可用于在 Active Directory 域服务中进行搜索。

技术 说明
DirectorySearcher
DirectorySearcher 类由 System.DirectoryServices 命名空间提供,它允许使用 .NET Framework 在 Active Directory 域服务中进行搜索。 有关详细信息,请参阅搜索目录
IDirectorySearch
ADSI 提供 IDirectorySearch 接口,以便使用 LDAP 来查询 Active Directory 服务器和其他目录服务(如 NDS)。 IDirectorySearch 是一个 COM 接口,它可返回各种类型的数据,例如整数、八进制字符串、字符串、安全描述符、UTC 时间、大整数或布尔值。 有关如何使用 IDirectorySearch 的详细信息,请参阅使用 IDirectorySearch 接口进行搜索
OLE DB
OLE DB 是一组 COM 接口,它们可为应用程序提供对存储在不同数据源中的数据的统一访问,而无需考虑位置或类型。 此外,ADSI 还提供一个 OLE DB 访问接口,以便应用程序能使用 OLE DB 来访问 Active Directory 域服务。 ADSI OLE DB 访问接口使用 IDirectorySearch 接口来提交针对 Active Directory 域服务的查询并收集结果。
ADO 和其他基于 OLE DB 的数据访问技术
ADSI OLE DB 提供程序允许基于 OLE DB 的任意数据访问技术(如 ADO)在 Active Directory 域服务中进行搜索。
LDAP API
Windows 2000 域控制器是符合 LDAP 版本 3 的目录服务器。 LDAP API 是一个 C 式函数库。 应用程序可使用 LDAP API 在 Active Directory 域服务中进行搜索。

选择技术时,请考虑以下因素:

  • 对于 Microsoft Visual Basic 和 Visual Basic Scripting Edition (VBScript),建议使用 ADO。
  • 对于 C/C++,可选择任意技术。
  • 如果应用程序广泛使用 ADSI,使用 IDirectorySearch 则可能更为简便。 如果使用 IDirectoryObject 来管理 Active Directory 域服务中的对象,则请使用 IDirectorySearch 更轻松地处理从搜索返回的属性。 IDirectorySearch 使用与 IDirectoryObject 相同的 ADSVALUE 结构来表示属性。 此外,IDirectorySearch 几乎在所有 ADSI COM 对象上均会公开。 如果存在指向 ADSI COM 对象的指针,则可调用 QueryInterface 以获取 IDirectorySearch 指针,而该指针可用于首先在 ADSI COM 对象所表示的目录对象处开始执行搜索。
  • 如果应用程序已使用 OLE DB、ADO 或 LDAP API,则可继续使用这些技术以便在 Active Directory 域服务中进行搜索。
  • 如果应用程序必须联接来自 Active Directory 域服务和 SQL Server 7 数据库的数据,则请使用 OLE DB。 通过使用 OLE DB,应用程序可执行分布式查询,而这些查询会引用一个或多个 Microsoft SQL Server 7 数据库中的 Active Directory 域服务以及表和行集。