收 藏
投 稿
繁 体
RSS
首 页
运 营
学 院
建 站
论 坛
Web
master8.net
网站运营
欢迎在本站发布信息,在线投递稿件
请点这里
。编辑QQ:4908220,欢迎联系交流。
业界动态
创业故事
推广研究
策划盈利
电子商务
企业平台
站长工具
SEO查询
Whois查询
Pr查询
域名查询
IP查询
网页编辑器
技术学院
投递稿件请点这里:)
网页设计
HTML
XHTML
CSS
Javascript
Frontpage
Dreamweaver
图形图像
PhotoShop
FireWorks
Flash
Coreldraw
程序开发
PHP
ASP
.NET
JSP
CGI
XML
数据库
MySQL
Oracle
MSSQL
Access
综合应用
设计理论
建站系统
服务器管理
常用下载
办公应用
建站服务
如有建站意向,请尽快联系我们,以便安排时间...
QQ:4908220
作品展示
服务范围
服务流程
服务报价
联系方式
付款方式
站长论坛
注册
/
登陆
/
忘密?
交流区
站长酒吧
SEO&推广
网赚交流
建站系统
服务&信息
招聘求职
项目外包
广告发布
网络资源
技术区
网页设计师
界面设计师
WEB程序员
计算机应用
文章正文
» 您的当前位置:
首页
>>
学院
>>
程序开发
>>
ASP
目录服务技术介绍——ADSI(6)
来源:
互联网
| 时间:2005-10-04 | 浏览:
相关评论
|
报告错误
|
发布文章
【字号:
大
|
中
|
小
】 【背景色
】
客户程序也可以利用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_MACHINESOFTWAREMicrosoftADsProviders键下添加新的提供者项(指向提供者组件的ProgID),如果读者感兴趣,可以检查该键项,以便确定当前系统已经安装了哪些提供者。
上一篇:
目录服务技术介绍——ADSI(5)
下一篇:
万维网创始人博客处女秀
我要投稿
打印本文
推荐本文
加入收藏
返回顶部
关闭窗口
12-03
软件发布:风越ASP代码生成器 [FireAsp Creator] V1.8
07-10
ASP种种错误提示解决方案
07-10
Asp+Sql 对数据库的各种操作
07-06
ASP Session
06-30
ASP 编程中20个非常有用的例子
ASP种种错误提示解决方案
从ASP过渡到ASP.net遗留的二十大...
如何把ASP编写成DLL
ASP开发中存储过程应用全接触
利用ASP发送和接收XML数据的处理...
ASP自动解压RAR文件
用php如何操作LDAP
ASP开发web站点
用ASP实现远程抓取网页到本地数...
ASP无组件上传进度条解决方案
more..
» 相 关 评 论
验证码:
站长吧首页
-
网站运营
-
站长学院
-
SEO查询
-
站长论坛
-
建站服务
-
联系本站
-
广告/业务
©2005-2006 站长吧 Master8.NET All rights reserved 陕ICP备05010609号
九州未来科技提供服务器支持
| 网站空间 | 虚拟主机