表1 iads介面的屬性
屬性名型別
說明name
bstr
物件名字
adspath
bstr
物件的全路徑
class
bstr
物件的類別(表結構物件的路徑)
guid
bstr
物件的全域性唯一標識(guid)
parent
bstr
父包容器的路徑
schema
bstr
表結構物件的路徑
表2 iads介面的方法
方法名引數
說明getinfo
用屬性值重新裝入物件
setinfo
提交屬性值的變化
getbstr bstrname,
variant *pvprop
獲取指定名字的屬性值
putbstr bstrname,
variant vprop
設定指定名字的屬性值
getex
bstr bstrname,
variant *pvprop
獲取指定名字的單值或多值屬性值
putex
long lncontrolcode,
bstr bstrname,
variant vprop
設定指定名字的單值或多值屬性值;若lncontrolcode為ads_property_clear,可以刪除屬性
getinfoex
variant vprops,
long lreserved
與getinfo類似,優化處理
另乙個重要的介面是iadscontainer,它是所有包容器物件必須要實現的介面。iadscontainer介面的屬性和方法如表3和表4所示。
表3 iadscontainer介面的屬性
屬性名型別
說明count
long
包容器中物件的個數
_newenum
lpunknown
返回包容器中物件的列舉器
filter
variant
bstr陣列,每個bstr指定了過濾器的定義
hints
variant
屬性陣列,其用法與getinfoex類似
表4 iadscontainer介面的方法
方法名引數
說明getobject
bstr bstrclass,
bstr bstrrelativename,
lpdispatch *pnewobject
得到包容器物件中指定物件的idispatch介面指標
create
bstr bstrclass,
bstr bstrrelativename,
lpdispatch *pnewobject
在包容器物件中建立指定名字的目錄物件,並返回物件的idispatch介面指標
delete
bstr bstrclass,
bstr bstrrelativename
刪除包容器物件中指定的目錄物件
copyhere
bstr bstrsource,
bstr bstrnewname,
lpdispatch* pnewobject
拷貝目錄物件到當前包容器物件中
movehere
bstr bstrsource,
bstr bstrnewname,
lpdispatch* pnewobject
移動目錄物件到當前包容器物件中
iads和iadscontainer介面分別代表了目錄服務中的目錄物件和包容器物件,為了對乙個名字空間進行各種目錄操作,我們必須從最基本的根出發,adsi為我們提供了介面iadsnamespaces用以表達名字空間物件。iadsnamespaces介面比較簡單,它只有乙個屬性「defaultcontainer」,此屬性指定了客戶程式訪問的基本包容器物件的路徑。
僅僅乙個iads介面還難以表達乙個目錄物件的全部特徵,前面已經提到,adsi用類別來定義目錄物件的特徵,並且類別物件本身也是目錄物件,它除了實現iads介面外,還實現了iadsclass介面。iadsclass介面從iads派生,其屬性如表5所示。
表5 iadsclass介面的屬性
屬性名型別
說明primaryinte***ce
bstr
可直接訪問到此類別屬性的介面id
clsid
bstr
與之相連的com物件的clsid
oidbstr
定義此類別的物件識別符號
abstract
variant_bool
指示此類別是否為抽象類,若是的話,則它不能被例項化,但其它類可以繼承該類別
auxiliary
variant_bool
指示此類別是否為輔助類
mandatoryproperties
variant
與之相連的目錄物件必須支援的屬性名陣列
optionalproperties
variant
與之相連的目錄物件支援的可選屬性名陣列
namingproperties
variant
與之相連的目錄物件支援的命名屬性名陣列(用於指示相對標識名rdn)
derivedfrom
variant
此類所繼承的類的路徑陣列
auxderivedfrom
variant
此類所繼承的輔助類的路徑陣列
possiblesuperiors
variant
可能包含此類例項的類的路徑陣列
containment
variant
可能被包含此類中的類的路徑陣列
container
variant_bool
指示此類是否為包容器物件類別
helpfilename
bstr
幫助檔名
helpfilecontext
long
幫助環境識別符號
iadsclass介面只有乙個方法qualifiers,用來返回描述附加限制物件的集合物件。在iadsclass介面的屬性中,primaryinte***ce屬性可直接指示客戶程式去請求對應的介面id,以便訪問該類別所指示的屬性,比如,在目錄服務中,「user」類指示使用者物件實現了乙個adsi介面iadsuser,它包含屬性「姓」、「名」、「職稱」、「**」等等。
目錄服務技術介紹 ADSI(一)
目錄服務技術介紹 adsi 潘愛民 北京大學計算機科學技術研究所 100871 摘要 本文介紹了microsoft提出的活動目錄服務介面 adsi 技術。文章首先講述了adsi的結構,然後介紹了adsi的 程式設計 方法,最後通過例子簡單說明了adsi的用法。一 adsi簡介 adsi active...
目錄服務技術介紹 ADSI(二)
下面列出目前已經實現的adsi目錄服務 1 windows nt域使用者管理。2 ldap exchange server 目錄服務。3 internet information server 4 nds novell netware directory services 目前,在乙個企業內部存在多...
目錄服務技術介紹 ADSI(三)
表1 iads介面的屬性 屬性名型別說明 name bstr 物件名字 adspath bstr 物件的全路徑 class bstr 物件的類別 表結構物件的路徑 guid bstr 物件的全域性唯一標識 guid parent bstr 父包容器的路徑 schema bstr 表結構物件的路徑 表...