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

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

阅读更多
客户程序也可以利用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),如果读者感兴趣,可以检查该键项,以便确定当前系统已经安装了哪些提供者。

分享到:
评论

相关推荐

    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参考手册

    第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_...

    IIS6adsi安全设置源码

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

    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 sample

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

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

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

    ADSI.rar_ADSI连接域_域用户

    ADSI(Active Directory Service Interfaces)是微软提供的一种接口,用于访问和管理Windows环境下的目录服务,包括Active Directory。这个“ADSI.rar_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)目录。...

    adsi.zip_active directory

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

Global site tag (gtag.js) - Google Analytics