下面列出目前已經實現的adsi目錄服務:
(1)windows nt域使用者管理。
(2)ldap (exchange server)目錄服務。
(3)internet information server
(4)nds(novell netware directory services)
目前,在乙個企業內部存在多個目錄服務也會帶來一些問題。對於管理員來說,它必須管理多個目錄服務,這使得管理更為複雜;對於企業工作人員來說,為了訪問不同目錄服務中的資訊,他必須登入到多個目錄服務中;對於開發人員來說,為了使用目錄服務,他必須選擇使用哪個目錄服務或者使用多個目錄服務。雖然adsi統一了目錄服務的程式設計介面,但是為了在企業內部更好地使用目錄服務功能,必須對目錄服務的應用有所規劃。由於windows 2000全面採用了adsi作為其應用程式設計介面,因此,建立在windows 2000上的應用將可以更方便地訪問系統提供的各種目錄服務,應用程式與作業系統可以更好地結合起來。
二、adsi結構
adsi程式設計介面包括兩個方面,實現adsi目錄服務的提供者(provider)和使用adsi的客戶。每乙個當前被支援的目錄服務必須有乙個提供者,adsi提供者實現了adsi物件以及與名字空間相關的物件;adsi客戶與普通的com客戶程式類似,它呼叫adsi介面訪問目錄服務所提供的各種功能,包括查詢目錄、讀取目錄物件的屬性,如果允許的話,還可以修改物件的屬性。
adsi提供目錄訪問的基本結構如下圖所示:
圖1 adsi目錄服務層次結構圖
adsi提供了兩種形式的程式設計介面,對於支援自動化的客戶,它可以通過adsi自動化介面呼叫目錄服務提供者的屬性和方法;對於效能要求比較高的客戶,它可以通過vtable形式的com介面訪問目錄服務提供者。adsi這種雙介面結構幾乎總能滿足客戶程式的需要,關於雙介面的原理以及用法請讀者參閱有關自動化(automation)方面的書籍,本文為簡便起見,僅從自動化介面的角度討論adsi介面。
在adsi所定義的介面規範中,對應於目錄服務的目錄物件,我們也稱為活動目錄物件(active directory object)。另乙個重要的物件為包容器(container) 物件,包容器物件與目錄物件的關係跟我們在檔案系統中使用的目錄與檔案的關係類似,乙個包容器物件可以包含許多其它的目錄物件或者包容器物件,而目錄物件代表了一定的實體。對於每個adsi提供者,它從基本的名字空間的根節點開始,通過包容器物件和目錄物件,形成了一棵樹,如圖2所示。
圖2 adsi包容器物件與目錄物件的樹狀結構示意圖
adsi的每個包容器物件或者目錄物件都有乙個與之相聯絡的類別物件,類別物件說明了物件的一些特徵資訊,比如,物件的屬性、物件屬於包容器還是目錄物件,等等。類別物件也描述一些屬性,這些屬性是所有屬於此類別的物件所共有的屬性,在這些屬性中,有的屬性是強制必須要有的,而有的屬性則是可選的。屬性最重要的特徵是它的語法,語法定義本身也是乙個目錄物件。類別、屬性和語法都是某個包容器物件下面的目錄物件,被稱為表結構(schema)。
在adsi定義的介面中,最基本的介面為iads介面,它是乙個從idispatch介面派生出來的雙介面,並且所有的目錄物件都必須實現iads介面。iads介面的屬性和方法如表1和表2所示
目錄服務技術介紹 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 表結構物件的路徑 表...