共用方式為


使用 IADs 介面

ADSI,目錄服務的每個元素都會以 ADSI 物件表示,這是支援標準 COM IUnknown 介面以及 IDispatch IADs 介面的元件物件模型 (COM) 物件。 IAD 會提供ADSI物件的基本維護功能。

每個 ADSI 對象都必須支援這個介面,這個介面可以:

  • 依名稱、類別或 ADsPath 提供物件識別。
  • 識別管理建立和刪除物件的物件容器。
  • 取得物件架構定義。
  • 將對象屬性載入屬性快取,並將變更認可至永續性目錄存放區。
  • 存取和修改屬性快取中的物件屬性值。

IADs 介面的設計目的是要確保 ADSI 對象為網路管理員和目錄服務提供者提供各種基礎目錄服務的有效率且一致的表示法。

adsi object supporting the iads interface

上圖顯示支援基本介面 IAD、IADsPropertyList、IUnknownIDirectoryObjectIDispatch 的基本介面的泛型 ADSI 物件。 這類 ADSI 物件會透過所支援的介面來管理基礎目錄服務之資料存放區中的數據。 此數據稱為 對象的屬性,而取得和設定這些屬性的例程稱為屬性方法。 唯讀屬性有一個可取得屬性值的屬性方法。 讀取/寫入屬性有兩種方法:方法,可設定值,而其中一個方法會取得值。 屬性是使用 屬性快取在每個 ADSI 對象上實作。 IADs::get_ADsPathIADs::p ut_ADsPath 是屬性方法的範例。 Visual Basic 和其他啟用屬性直接參考的自動化用戶端並不明顯。 例如,Visual Basic 會直接使用 Object.ADsPath 語法來參考 IADs::ADsPath 如需詳細資訊,請參閱 介面屬性方法

此外,ADSI 物件會與其他 ADSI 對象互動,並透過方法直接與命名空間互動。 方法會立即執行。 方法的範例包括 IADs::SetInfoIADs::GetInfo

屬性、屬性方法和方法全都透過標準 COM 介面來存取。

ADSI 物件是由其 ADsPath 唯一識別。 例如,LDAP 命名空間的 ADsPath 是 「LDAP://MyServer/DC=Fabrikam,DC=COM」。 如需 ADsPaths 的詳細資訊,請參閱 ADSI 系結。 對於熟悉 COM Moniker 的程式設計人員,這在概念上類似於 COM Moniker 顯示名稱。

包含其他 ADSI 物件的任何 ADSI 物件,稱為 ADSI 容器物件,也支援 IADsContainer 介面,該介面提供方法與屬性來管理物件所包含的 ADSI 物件的建立、刪除和列舉。 下圖顯示 ADSI 容器物件。

adsi container object

大部分 ADSI 物件是由其他物件所包含。 沒有父容器的唯一 ADSI 物件是最上層 ADSI 命名空間 物件 (“ADS:” )。

容器物件上的 IADs::SetInfo 方法除了使用 IADsContainer::Create 方法建立的任何物件之外,也會持續將 ADSI 容器物件的快取屬性儲存至記憶體。 IADsContainer::D elete 不會影響屬性快取,但會刪除這個物件所代表的基礎命名空間目錄專案。