人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

目錄服務技術介紹——ADSI(6)

目錄服務技術介紹——ADSI(6)

更新時間:2021-11-16 文章作者:未知 信息來源:網絡 閱讀次數:

客戶程序也可以利用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),如果讀者感興趣,可以檢查該鍵項,以便確定當前系統已經安裝了哪些提供者。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 宁都县| 金坛市| 杭锦旗| 鞍山市| 中方县| 陇西县| 闽清县| 霍州市| 佛坪县| 延川县| 越西县| 思茅市| 赤峰市| 民和| 泾阳县| 云南省| 平原县| 湾仔区| 名山县| 海淀区| 故城县| 牡丹江市| 邢台县| 大同县| 鹿泉市| 手游| 青河县| 榆树市| 连南| 洮南市| 苏尼特左旗| 石景山区| 天气| 和平县| 海口市| 沂水县| 京山县| 兴化市| 巴林右旗| 江源县| 中方县|