大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> ASP专区 -> 以前收集到的一些资料---使用ADSI开发NT目录服务会出现的一些问题及解决办法(I)

以前收集到的一些资料---使用ADSI开发NT目录服务会出现的一些问题及解决办法(I)

时间: 2021-07-31 作者:daque

运用asp开拓nt目次效劳会展示的少许题目(i)相关adsi的材料真是难找,本领固然很好,怅然300多页的sdk我可真看不动假如哪位大侠有空的话,不妨帮我翻译就好了,呵呵。此刻只好草率着翻译少许短小的作品了,哎。急遽之间翻译成的,缺点确定不少,还蓄意大师包容。运用到的本领仍旧我前方提到的adsi,这一节的中心放在安排目次树上。目次效劳(dn)在贯串了所有nt范围。简直每一个处置工作最后城市去变换体例目次中的某一个目次。象介入新用户到组内里,兴建一个互联网络网站,或则革新电子邮件目次之类。提防的是,windows2000的震动目次仍旧扶助这个本领。微软仍旧供给了少许功效很宏大的com接口来考察各别的目次效劳。ads 定名空间和providerads provider的观念和odbc构造很相象,比方oracle的odbc启动器让一台呆板贯穿到oracle的数据库中,然而这并不表示着这个数据库真实生存。同样的联系也运用与adsi,它是一个实用与各别的目次定名空间的大众接口。大概这个目次定名空间生存与搜集中。在一个典范的效劳器上,当安置了精确的东西箱后,你会找到三个ads provider她们是: winnt: - 给nt及其搜集用的  iis: - 给iis用的 ldap: - 给ms exchange和windows200的震动目委派的大概你还会创造底下的provider nwcompat: - 给novell 3.1用的 nds: - 给novell directory services用的 每一个定名空间东西都由目次效劳的根节点集构成,典范的例子是nt的domain大概server,但不是一切的provider都不妨机动创造根目次节点。你不妨绑定到一个winnt:东西上它会供给一个nt域列表然而对于iis和ldap的定名空间东西,则既没有iis也没有ms exchange的根节点.在运用的功夫而必需要被指明。容器,会员,汇合对于大局部而言,目次是一个分层目次构造的东西同声它还容纳了其余的东西举例来说,一个物理的iis效劳器有多个网站,每个网站还不妨有多个目次(或则网站的应用步调),而那些目次再有子目次。一个nt的domain不妨有多个效劳器之类。在adsi术语中,一切上头的容器东西又容纳其它东西,就构成了定名空间树。典范的代码如次:set oads = getobject("winnt://mydomain")for each oadschild in oads' do something next分层目次模子并不不妨实足刻画东西之间的联系。部分而言,nt的用户和组东西牵制与domain 和 server东西,然而她们之间又有一个附加的会员联系。adsi东西模子经过.groups和.menmbers属性来表白会员联系比方一个典范的列表如次:set oads = getobject("winnt://mydomain/administrator")for each oadsgroup in oads.groups' do something next' ...set oads = getobject("winnt://mydomain/domain users")for each oadsmember in oads.members' do something next提防查看上头的代码的巧妙的各别之处对一个东西自己实行列表,将归来它的子层。对一个东西的.member属性实行列表将归来它的会员列表。结果,再有少许动静汇合来表白那些姑且独力的东西。一个典范的例子是在打字与印刷部队中的工作.printjobs汇合schema东西每个ads东西都接洽在一个schema东西,来表白它的本能和特性咱们在写代码的功夫常常碰到如许的题目:我的东西究竟扶助那些属性这是一个容器东西,或则东西有大概包括怎么办的典型。比方,在规则上,一个目次效劳自己即是一个完全的schema东西。筹备运路途序这个ads欣赏步调须要有确定的安定权力才不妨运转。正片这个ads欣赏文献到你的搜集中的一个共享的目次中映照一个假造的web目次指使这个目次有处置者的权力。看一看定名空间树在这边运用了微软的htmlhelp java applet.它不妨爆发咱们须要的树状构造。尤为要害的是它不妨供给对联树的扶助由于我并不承诺拿我的所有目次树来浮夸。一个相关htmlhelp applet的计划会远远胜过此刻的话题,底下就只给出很简略的本子:<ul><!-- ... --><li>iiswebserver objects<ul><li> 1<!-- on click: 表露页面adsproperties.asp?adspath=iis://myserver/w3svc/1} --><ul><!-- on expand: 表露下头等adstreehhc.asp?adspath=iis://myserver/w3svc/1 --></ul><li> 2<!-- on click: 表露页面adsproperties.asp?adspath=iis://myserver/w3svc/2} --><ul><!-- on expand: 表露下头等adstreehhc.asp?adspath=iis://myserver/w3svc/2 --></ul><!-- ... --></ul><!-- ... --></ul>如何找到目次树的节点步调过程该当如次:1。绑定到一个目次东西2。搜索与之关系的schema类3。即使它是一个容器东西,那么  for all 大概的容器 in 这个东西 (经过schema获得)  对一切的东西举行实行 运用htmlhelp applet天生<li>... 在实行进程中,本来所有才10行代码,然而每一条龙代码都有起本人的难点控制了它们你就不妨实行很多其它巧妙的功效。难点一:搜索schema类东西第一个难点即是并不是一切的ads东西都有真实有一个schema. 一段步调段如次set oads = getobject(vadspath)set oadsclass = getobject(oads.schema)对于少许高头等的东西来说这段代码将会波折.必需再加一点特殊处置。function getclass(oads)on error resume nextset getclass = nothingset getclass = getobject(oads.schema)end functionset oadsclass = getclass(oads)if typename(oadsclass) <> "nothing" then' do somethingend if经过处置一个schema类,咱们察看它的.container属性来确定咱们处置的容器典型。接着当咱们运用它的.containment数组来获得东西的类。举例来说,少许domain东西将归来一个schema类数组,个中包括有字符串"computer", "user", "group", 和 "schema". 表面上的代码如次if oadsclass.container thenvcontainment = oadsclass.containmentfor vidx=0 to ubound(vcontainment)oads.filter = array(vcontainment(vidx))for each oadschild in oads' write an <li>... entrynextnextend if然而又展示题目了,这个本领有功夫不不妨处事。一个winnt domain的.containment数组只是归来从来是4个东西类中的3个.而ldap的provider基础就不实行.container和.containment属性如许咱们就没法再运用上头的代码了,只好对准那些怪僻的局面造出少许怪僻的代码了其它怪僻的场合底下是少许很怪僻的代码,比方nt的lanmanserver东西不妨设想它该当有一个fileservice 类而且包括有一个fileshare类东西.精确的代码如次:set oads = getobject("winnt://mydomain/myserver/lanmanserver")然而很悲惨的是当咱们挪用它的父节点时将会堕落set oads = getobject("winnt://mydomain/myserver")oads.filter = array("fileservice")for each oadschild in oads ' 这边的代码将长久不会实行next底下一致的方法也会堕落:set oads = getobject("winnt://mydomain/myserver")for each oadschild in oadsif oadschild.name = "lanmanserver" thenfor each oadsgrandchild in oadschild' 堕落 nextend ifnext这是干什么呢,本来lanmanserver有一个双重身份.它是一个fileservice东西但同声它也是一个普遍的service东西。以是底下这段怪僻的代码就爆发了:for each oadschild in oadsif oadschild.name = "lanmanserver" thenset oadschild = getobject(oadschild.adspath) for each oadsgrandchild in oadschild' 毕竟胜利了nextend ifnext东西本质:同上头比拟,东西的属性对立简单赢得。每个东西不妨设想获得都有一个中心的属性。比方name,经过这个沟通的属性不妨很简单的运用东西:vadsname = oads.name大普遍东西再有如许的属性.mandatoryproperties 和 .optionalproperties , 这都不妨经过她们的schema类获得,它们的数值不妨经过东西的.getex本领获得:for each vprop in oadsclass.mandatorypropertiesvpropvalue = oads.getex(vprop)next

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.