玄铁剑

成功的途径:抄,创造,研究,发明...
posts - 128, comments - 42, trackbacks - 0, articles - 174

DirectoryServices.ActiveDirectory 技术摘要

Posted on 2007-01-02 21:25 玄铁剑 阅读(446) 评论(0)  编辑 收藏 引用 所属分类: ASP.NET相关

System.DirectoryServices.ActiveDirectory 是 .NET Framework 的一个组件,它使程序能够执行与分区、架构、复制、信任和 Active Directory 配置有关的 Active Directory 管理任务。

System.DirectoryServices.ActiveDirectory 是对 Active Directory 和 ADAM 进行了简化的简单接口,对于应用程序开发人员和要自动化常见管理任务的系统管理员而言,十分有用。尽管此命名空间提供的某些功能通过现有的 System.DirectoryServices 类也可以获得,但使用 System.DirectoryServices.ActiveDirectory 执行许多任务时,编写代码所需的行数将会减少,对 Active Directory 架构掌握程度的要求也有所降低。

关键字关键字

Active Directory Management, Active Directory Scripting, management application, Active Directory Schema, replication, forests, trusts, ADAM, Active Directory 管理, Active Directory 脚本, 管理应用程序, Active Directory 架构, 复制, 林, 信任

命名空间命名空间

System.DirectoryServices.ActiveDirectory

相关技术相关技术

System.DirectoryServices

System.DirectoryServices.ActiveDirectory 对象实现的许多任务同样也可以用 System.DirectoryServices 对象实现。System.DirectoryServices 中的类提供对各种目录服务(包括 Active Directory、基于 LDAP 的目录、SAM、Novell Netware 和 IIS 目录)的一般性访问。System.DirectoryServices.ActiveDirectory 提供一个简化的模型,用于访问和处理特定于 Active Directory 的常用对象,例如域、架构属性、信任关系和复制计划。在 System.DirectoryServices 中不支持 System.DirectoryServices.ActiveDirectory 所提供的很大一部分功能。由于 System.DirectoryServices 的不适应特殊环境的性质,即使在 System.DirectoryServices 确实支持等效功能时,应用程序开发人员也必须编写更多的代码来执行相同的操作。

System.DirectoryServices.Protocols

System.DirectoryServices.Protocols 命名空间通过轻型目录访问协议 (LDAP) 版本 3.0 (V3) 和目录服务标记语言 (DSML) 版本 2.0 (V2) 标准,提供对目录服务的以编程方式进行的一般性访问和管理。System.DirectoryServices.Protocols 为托管 LDAP 编程提供最高级别的控制和最高的性能。与 System.DirectoryServices 一样,System.DirectoryServices.Protocols 不是专为 Active Directory 和 ADAM 任务而设计的。

用于 Windows 的 DSML 服务

通过 Windows 的目录服务标记语言 (DSML) 服务,应用程序能够使用 XML 文档通过 SOAP-DSML 消息对 Active Directory 执行读写操作。在使用此技术时,将采用 MS XML 对象之类的 COM 对象来处理消息。对于使用 .NET 本机接口的 DSML 处理,使用 System.DirectoryServices.Protocols 命名空间中的接口。有关用于 Windows 的 DSML 服务的详细信息,请参阅 MSDN Library(网址为 http://msdn.microsoft.com/library)中“Win32 和 COM 开发 SDK 文档”副标题下“目录服务”中的“用于 Windows 的 DSML 服务”。

Active Directory COM 接口和 Win32 函数

通过 Active Directory COM 接口和 Win32 函数,基于 Win32 的程序能够访问特定于 Active Directory 的管理对象并与 MMC Active Directory 管理单元集成。这些技术在非常低的目录级别与 Active Directory 交互,因此,与使用 System.DirectoryServicesSystem.DirectoryServices.ActiveDirectory 命名空间完成相同任务所需的编程步骤相比,上述技术通常需要进行更复杂的编程。它们还提供托管类未提供的一些功能,因此,在实现某些类型的应用(例如向 MMC 管理单元页添加新内容)时,必须使用 Active Directory COM 接口和 Win32 函数。有关这些技术的详细信息,请参阅 MSDN Library(网址为 http://msdn.microsoft.com/library)中“Win32 和 COM 开发 SDK 文档”副标题下“目录服务”中的“Active Directory”。

ADSI

Active Directory 服务接口 (ADSI) 是一组自动化和非自动化 COM 接口,提供对特定于 Active Directory 的管理对象、应用程序对象和 Active Directory 架构的访问。ADSI 中的自动化接口可用于编写脚本。C++、C# 和 VB.Net 等也支持非自动化 COM 接口的语言可以使用这两种类型的接口开发应用程序。有关 ADSI 的详细信息,请参阅 MSDN Library(网址为 http://msdn.microsoft.com/library)中“Win32 和 COM 开发 SDK 文档”副标题下“目录服务”中的“Active Directory 服务接口”。

LDAP

轻型目录访问协议 (LDAP) API 提供对基于 LDAP 的目录(包括 Active Directory)的访问。它使用标准 LDAP 协议访问、搜索和处理目录项。与 Active Directory COM 接口和 Win32 函数类似,LDAP 使开发人员能够通过其目录路径访问对象。但是,由于 LDAP 本身不能识别 Active Directory 的特定结构,因此,与其他 Active Directory 应用程序开发方法相比,基于 LDAP 的 Active Directory 应用程序通常更复杂且涉及更多的代码。有关 LDAP 的详细信息,请参阅 MSDN Library(网址为 http://msdn.microsoft.com/library)中“Win32 和 COM 开发 SDK 文档”副标题下“目录服务”中的“轻型目录访问协议”。

背景背景

System.DirectoryServices.ActiveDirectory 命名空间包含一组 .NET 类,这些类可以简化管理和访问 Active Directory 内容的应用程序的开发过程。

通过 .NET Framework 的早期版本,应用程序开发人员能够使用 System.DirectoryServices 命名空间访问 Active Directory 项。但是,由于已开发了 System.DirectoryServices 以用于提供对多种不同类型的目录服务(而不只限于 Active Directory)的访问,因此,它并不包含提供对特定于 Active Directory 和 ADAM 的功能(例如由林和域组成的分区以及由站点、子网和站点链接组成的拓扑)的直接访问的类。如果开发人员知道相关的元素的路径并且正确构造了表示该路径的字符串,同时所有对象都存储于 Active Directory 中,但 System.DirectoryServices 命名空间本身并不清楚 Active Directory 的结构,则可以通过 System.DirectoryServices 访问这些元素。此外,有时必须检索或更新两个或多个元素,才能实现 Active Directory 管理任务。

在许多组织中,对目录服务的 Active Directory 的依赖性日益增强,因此,应用程序开发人员需要一种更简单的方式访问和更新拓扑信息并控制 Active Directory 进程。这一新机制将只要求对 Active Directory 架构的内部结构有最基本的了解,并使开发人员通过尽可能少的应用程序代码行即可执行与 Active Directory 相关的常见任务。System.DirectoryServices.ActiveDirectory 就是为满足这些需求而设计的。

使用 .NET Framework 编写的应用程序可以使用 System.DirectoryServices.ActiveDirectory 类(例如 ForestDomainActiveDirectorySiteLink)来枚举和浏览 Active Directory 树的拓扑。为了使用 System.DirectoryServices.ActiveDirectory 类引用对象,应用程序开发人员只需要知道该对象在层次结构中的位置,例如名为“sales”的域位于“contoso.com”林中。 类似地,开发人员可以通过 ReplicationOperation 之类的类检查和控制对 Active Directory 的操作的进度,或者通过 ActiveDirectorySchema 之类的类查询或修改 Active Directory 架构本身。

开发人员有时可能需要访问通过 System.DirectoryServices 提供的附加功能,同时还要利用 System.DirectoryServices.ActiveDirectory 类来导航 Active Directory 拓扑。为了实现此目的,应用程序通常可以获取对实际 DirectoryEntry 对象的引用,该对象对应于 System.DirectoryServices.ActiveDirectory 命名空间中开发人员感兴趣的某个对象。然后,应用程序可以使用 DirectoryEntry 对象访问通过 System.DirectoryServices 命名空间中的类提供的功能,例如读取和写入 Active Directory 项安全描述符。

有关 System.DirectoryServicesSystem.DirectoryServices.ActiveDirectory 命名空间的详细信息,请参阅 .NET Framework 类库参考。.NET Framework 还包含常规的 .NET Framework 编程信息。

新增功能新增功能

System.DirectoryServices.ActiveDirectory 是在 Visual Studio 2005 中引入的新的基于任务的类层次结构,它简化了向应用程序添加与 Active Directory 和 ADAM 相关的功能的过程。

只有注册用户登录后才能发表评论。