`
txf2004
  • 浏览: 7132699 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

目录服务技术介绍——ADSI(7)

阅读更多
了解了客户程序的编程方法以及ADSI提供者的基本内容之后,现在我们来看看从客户程序到ADSI提供者组件的交互过程(如图4所示),以便加深读者对ADSI的理解。



图4 客户程序与ADSI提供者的交互过程

客户程序首先向ADSI发一个对象绑定请求(图中步骤1),ADSI组件根据客户给出的ADSI对象路径,提取出标识提供者ProgID的字符串,比如“WinNT”、“LDAP”或者自定义的提供者ProgID,进一步在注册表中找到此ProgID所对应的CLSID(图中步骤2)。然后装入提供者组件程序(图中步骤3),接下去的任务就交给提供者组件,由它创建对象并返回给ADSI组件(图中步骤4),进一步返回给客户程序(图中步骤5)。以后客户与目录对象直接进行通讯(图中步骤6)。这是客户绑定ADSI目录对象的实现过程。

四、ADSI例程序

这一部分我们将介绍一个ADSI例程序dsbrowse,它是一个VB表单窗口程序,此程序可以对当前机器上的所有ADSI提供者进行浏览,图5分别给出了dsbrowse运行的初始状态以及打开NT域之后的目录对象列表图。



(a) 初始运行状态 (b) 打开WinNT域之后的状态

图5 例程序dsbrowse运行示意图

dsbrowse例程序非常简单,在表单窗口的初始化函数中,根据程序指定的根路径,对它所包容的对象进行枚举。缺省情形是,我们在初始路径中指定“ADS:”,它是ADSI的总根,包容了当前机器上的所有名字空间,如图5(a)所示,dsbrowse列出了当前机器上的5个名字空间:IIS、LDAP、NDS、NWCOMPAT和WinNT。有的名字空间需要指定相应的服务器,不能进行无服务器枚举,所以我们不能直接用dsbrowse进行枚举,但有的名字空间可以进行无服务器枚举,对这种名字空间我们可以点击名字空间前的加号即可列出它所包容的目录对象或者子包容器对象。比如,我们在“WinNT”名字空间点击可列出当前网络环境下所有的NT域,进一步在某个NT域名上点击可列出此域中所有的目录对象,包括此域的用户、计算机、用户组、服务等对象。

我们在窗口的树状控制中选中某个对象,再点击右上角的“Properties”按钮,dsbrowse程序会用一个对话框显示被选中对象的属性信息,如图6所示。属性对话框列出了相应对象的名字、路径、是否为包容器对象、以及它的属性表,用户可以通过下部的控制修改对象的属性。



图6 例程序dsbrowse的属性对话框

读者可以从Visual Studio的Visual C++ Sample中得到dsbrowse程序的主要源代码,源代码位于Samples\sdk\netds\adsi\sampapp\dsbrowse目录下。在sampapp目录下还有一个Visual C++的例程序AdsCmd,它可以直接通过命令行参数访问指定目录对象,也可以列出包容器对象的所有子对象。比如,我们可以通过AdsCmd列出Microsoft Exchange Server的邮箱信息:

AdsCmd list LDAP://MailServer/cn=Recipients,ou=MySite,o=MyOrganization

我们也可以让AdsCmd程序直接给出指定路径的目录对象的属性信息,例如:

AdsCmd dump LDAP://MailServer/cn=PanAimin,cn=Recipients,ou=MySite,o=MyOrganization

当然,AdsCmd不仅可以访问Microsoft Exchange Server的用户信息,也可以访问其它任意名字空间的目录服务信息。

五、结束语

ADSI是一项正在发展中的技术,它体现了网络时代访问和管理信息的基本思想。Microsoft正逐步把它标准化,ADSI也将成为Windows 2000操作系统的一项新特性,虽然我们在Windows NT 4.0以及一些应用软件中已经看到了ADSI的应用,但无论是WinNT或者是用于Microsoft Exchange Server用户访问的LDAP协议,ADSI的支持都是不完全的,我们还无法通过WinNT名字空间添加NT用户。虽然ADSI支持Windows NT的安全特性,但实际上这种特性还有待于进一步完善。

ADSI技术的全面应用必须要等到Windows 2000发布之后才有可能。随着Windows 2000发布日的临近,ADSI最终必将统一目录服务接口。作为Windows程序员,我们必须对此作好准备。本文对ADSI作了基本的介绍,文中提到的接口或者基本原则不会再变化,但个别细节有可能在新的版本中有所不同。请读者在使用中注意这一点。
分享到:
评论

相关推荐

    Windows 2000活动目录开发人员参考库 第3卷 ADSI程序员指南

    ADSI是微软提供的一种接口,允许开发人员通过各种编程语言访问和管理目录服务,如Windows 2000的活动目录。 首先,ADSI是Windows操作系统中用于访问和管理目录服务的核心组件。它提供了一种统一的方式来处理不同...

    delphi for adsi demo 代码

    **ADSI(Active Directory Service Interfaces)是微软提供的一种接口,用于访问和管理Windows域环境中的对象,如用户、计算机、组和其他目录服务信息。在Delphi编程中,ADSI库可以方便地集成到应用程序中,实现对...

    Windows 2000活动目录开发人员参考库 第4卷 ADSI参考手册

    这本书是Windows 2000时代的重要技术参考,尽管Windows系统已经发展到更高级版本,但ADSI的基本原理和技术依然对理解现代Windows环境下的目录服务和脚本编程有重大价值。通过深入学习这本手册,开发者可以掌握与活动...

    ADSI脚本工具scriptomatic

    ADSI是微软提供的一种接口,用于管理和查询活动目录(Active Directory)以及与之交互的任何其他目录服务。它允许管理员和开发者通过各种脚本语言(如VBScript、JScript)访问和操作目录对象,如用户账户、计算机...

    ADSI.DLL MSC

    ADSI (Active Directory Service Interfaces) 是微软Windows操作系统中用于访问和管理目录服务的一种技术。它为开发者提供了一种统一的接口,可以操作多种目录服务,包括Microsoft的活动目录(Active Directory)和...

    Windows2000活动目录开发人员参考库第4卷ADSI参考手册

    第7章 关于ADSI接口 7.1 ADSI接口的字典式列表 7.2 接口的特性方法 7.3 系统提供者的接口实现 第8章 核心接口 8.1 IADs接口 8.1.1 IADs接口的特性方法 8.1.2 IADs::Get方法 8.1.3 IADs::GetEx方法 8.1.4 ...

    AD编辑工具adsi.rar

    在IT行业中,活动目录(Active Directory,简称AD)是微软公司提供的一种服务,用于管理和组织网络中的资源,如用户、计算机、组等。AD编辑工具adsi.rar则是一款专为AD设计的辅助工具,它可以帮助管理员更方便地查看...

    ADSI.zip_ADSI_Creating_delphi adsi

    **ADSI(Active Directory Service Interfaces)是微软提供的一种接口,用于访问和管理Windows操作系统中的活动目录服务。在Delphi编程环境中,ADSI被广泛应用于创建、读取、更新和删除Active Directory的对象,如...

    ADSI.rar_ADSI连接域_域用户

    ADSI(Active Directory Service Interfaces)是微软提供的一种接口,用于访问和管理Windows环境下的目录服务,包括Active Directory。这个“ADSI.rar_ADSI连接域_域用户”压缩包文件很可能是包含了一些关于如何利用...

    adsi sample

    ADSI(Active Directory Service Interfaces)是微软提供的一种接口技术,用于访问和管理各种目录服务,包括Windows活动目录(Active Directory)和其他遵循LDAP(轻量级目录访问协议)或DNS(域名系统)协议的目录...

    WMI教程,VBS教程,adsi教程三合一教程

    1. **ADSI基础**:介绍ADSI的基本概念,如连接到目录服务器、查找对象、修改对象属性等。 2. **使用VBScript和ADSI**:通过VBScript操作AD用户、组、计算机账户,创建、删除、修改对象。 3. **ADSI对象和属性**:...

    基于LDAP目录服务的研究与应用

    本文介绍了目录服务技术的发 展历史,并由此引出LDAP作为目录服务访问协议的原因。目录服务访问协议本身在不断发展,通过对LDAPvl、LDAPvZ和LDAPv3的比较,体现LDAPv3在保持 和以前版本兼容性的同时,具有的分布式...

    动态创建网站 C# 操作ADSI创建 III网站

    c# 操作ADSI 动态的在IIS 上面创建网站,对网站权限和属性进行分配

    adsi.zip_little

    1. **ADSI(Active Directory Service Interfaces)**:ADSI是微软提供的一种访问目录服务的标准接口,可以用来访问和操作Windows活动目录以及其他的LDAP(Lightweight Directory Access Protocol)目录。...

    IIS6adsi安全设置源码

    ADSI(Active Directory Service Interfaces)则是一种编程接口,用于访问和管理目录服务,包括对IIS站点的管理和配置。在这个主题中,我们将深入探讨如何使用VB(Visual Basic)编程语言和ADSI进行IIS6的安全设置。...

    adsi.zip_active directory

    Active Directory是微软Windows操作系统中的一项服务,它主要用于管理网络环境中的用户账户、计算机、安全策略等资源,提供目录服务。在Delphi中,我们可以使用ActiveX Data Objects (ADO) 或者 ADSI (Active ...

Global site tag (gtag.js) - Google Analytics