客户程序也可以利用IADsClass、IADsProperty和IADsSyntax接口在运行时刻确定目录对象的详细属性信息。操作步骤如下:
a.先绑定到目录对象的表结构对象,可以直接访问目录对象的“schema”属性。
b.用枚举的办法从表结构对象中找到强制属性或者可选属性,如果客户知道要访问的属性名则可以跳过这一步。
c.绑定到表结构对象的包容器对象。
d.从表结构对象的包容器对象获得属性的定义对象。
e.从属性定义对象获取属性信息,包括属性的语法信息等。
下面的代码演示了如何从获得表结构对象到访问“Owner”属性的细节信息的过程:
Dim obj As IADs
Dim cl As IADsClass
Dim pr As IADsProperty
Dim sy As IADsSyntax
Dim sc As IADsContainer
Set obj = GetObject("WinNT://MyDomain/myMachine")
Set cl = GetObject(obj.Schema)
Set sc = GetObject(cl.Parent)
Set pr = sc.GetObject("Property","Owner")
MsgBox "Attribute: " & pr.Name
MsgBox "Syntax:" & pr.Syntax
Set sy = GetObject(sc.AdsPath & "/" & pr.Syntax)
MsgBox "Syntax object: " & sy.Name & " of OleAutoDataType: " & sy.OleAutoDataType
(6) 增加或者删除目录对象。
利用包容器对象的IADsContainer接口的方法(见表4),我们可以很方便地增加或者删除目录对象,举例如下:
Dim Container as IADsContainer
Dim NewUser as IADsUser
Set Container = GetObject("WinNT://MyDomain")
' Create the new wrapper.
Set NewUser = Container.Create("user", "PanAimin")
' Write it back to the DS
NewUser.SetInfo
' Set Jane's password.
NewUser.SetPassword("123")
' Delete the user.
Call Container.Delete("user","Mary")
ADSI的各种操作比较简单,只要我们能够理解ADSI的基本结构,并且对核心的几个接口以及常用提供者的一些接口有所了解,就可以用一致的方法访问目录服务,这也说明了ADSI作为通用目录服务标准为程序员带来的最大益处。
实现ADSI提供者要比使用ADSI复杂得多,通常情况下,我们只需使用系统已经定义的ADSI提供者。但如果确实应用需要,我们可以实现自定义的ADSI提供者。为了实现一个ADSI提供者,有一些特性是必须要支持的,而其它的特性则是可选的。下面是一些必须要实现的特性:
(1) 路径解析使用COM的命名规范(moniker),其中名字空间对象必须要实现IParseDisplayName::ParseDisplayName函数以及IADsOpenDSObject接口。
(2) IADs接口必须实现属性的缓存技术,只有IADs::GetInfo函数和IADs::SetInfo函数才刷新缓存或提交到底层目录服务。
(3) 每一个包容器对象必须实现IADsContainer接口。
(4) 所有的ADSI对象都支持IDispatch接口,以便自动化客户访问属性和方法。
(5) 对于非自动化客户通过IDirectoryObject访问ADSI目录对象,而不是IADs接口。
(6) ADSI至少实现一个表结构包容器对象,以及相应的语法、属性和类别对象,分别支持接口IADsSyntax、IADsProperty或IADsClass,每个根节点必须包含它自己的表结构包容器对象。
为了让ADSI能够找到自定义的提供者,我们必须在实现了ADSI提供者之后,把它注册到系统注册表中。在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ADs\Providers键下添加新的提供者项(指向提供者组件的ProgID),如果读者感兴趣,可以检查该键项,以便确定当前系统已经安装了哪些提供者。
分享到:
相关推荐
ADSI是微软提供的一种接口,允许开发人员通过各种编程语言访问和管理目录服务,如Windows 2000的活动目录。 首先,ADSI是Windows操作系统中用于访问和管理目录服务的核心组件。它提供了一种统一的方式来处理不同...
**ADSI(Active Directory Service Interfaces)是微软提供的一种接口,用于访问和管理Windows域环境中的对象,如用户、计算机、组和其他目录服务信息。在Delphi编程中,ADSI库可以方便地集成到应用程序中,实现对...
这本书是Windows 2000时代的重要技术参考,尽管Windows系统已经发展到更高级版本,但ADSI的基本原理和技术依然对理解现代Windows环境下的目录服务和脚本编程有重大价值。通过深入学习这本手册,开发者可以掌握与活动...
ADSI是微软提供的一种接口,用于管理和查询活动目录(Active Directory)以及与之交互的任何其他目录服务。它允许管理员和开发者通过各种脚本语言(如VBScript、JScript)访问和操作目录对象,如用户账户、计算机...
ADSI (Active Directory Service Interfaces) 是微软Windows操作系统中用于访问和管理目录服务的一种技术。它为开发者提供了一种统一的接口,可以操作多种目录服务,包括Microsoft的活动目录(Active Directory)和...
第6章 使用ADSI 6.1 ADSI枚举 6.1.1 ADS_ACEFLAG_ENUM枚举 6.1.2 ADS_ACETYPE_ENUM枚举 6.1.3 ADS_AUTHENTICATION_ENUM枚举 6.1.4 ADS_cHASE_REFERRALS_ENUM 枚举 6.1.5 ADS_DEREFENUM枚举 6.1.6 ADS_...
ADSI(Active Directory Service Interfaces)则是一种编程接口,用于访问和管理目录服务,包括对IIS站点的管理和配置。在这个主题中,我们将深入探讨如何使用VB(Visual Basic)编程语言和ADSI进行IIS6的安全设置。...
在IT行业中,活动目录(Active Directory,简称AD)是微软公司提供的一种服务,用于管理和组织网络中的资源,如用户、计算机、组等。AD编辑工具adsi.rar则是一款专为AD设计的辅助工具,它可以帮助管理员更方便地查看...
**ADSI(Active Directory Service Interfaces)是微软提供的一种接口,用于访问和管理Windows操作系统中的活动目录服务。在Delphi编程环境中,ADSI被广泛应用于创建、读取、更新和删除Active Directory的对象,如...
ADSI(Active Directory Service Interfaces)是微软提供的一种接口技术,用于访问和管理各种目录服务,包括Windows活动目录(Active Directory)和其他遵循LDAP(轻量级目录访问协议)或DNS(域名系统)协议的目录...
1. **ADSI基础**:介绍ADSI的基本概念,如连接到目录服务器、查找对象、修改对象属性等。 2. **使用VBScript和ADSI**:通过VBScript操作AD用户、组、计算机账户,创建、删除、修改对象。 3. **ADSI对象和属性**:...
ADSI(Active Directory Service Interfaces)是微软提供的一种接口,用于访问和管理Windows环境下的目录服务,包括Active Directory。这个“ADSI.rar_ADSI连接域_域用户”压缩包文件很可能是包含了一些关于如何利用...
本文介绍了目录服务技术的发 展历史,并由此引出LDAP作为目录服务访问协议的原因。目录服务访问协议本身在不断发展,通过对LDAPvl、LDAPvZ和LDAPv3的比较,体现LDAPv3在保持 和以前版本兼容性的同时,具有的分布式...
c# 操作ADSI 动态的在IIS 上面创建网站,对网站权限和属性进行分配
1. **ADSI(Active Directory Service Interfaces)**:ADSI是微软提供的一种访问目录服务的标准接口,可以用来访问和操作Windows活动目录以及其他的LDAP(Lightweight Directory Access Protocol)目录。...
Active Directory是微软Windows操作系统中的一项服务,它主要用于管理网络环境中的用户账户、计算机、安全策略等资源,提供目录服务。在Delphi中,我们可以使用ActiveX Data Objects (ADO) 或者 ADSI (Active ...