Freigeben über


Verwenden der IADs-Schnittstellen

ADSI, jedes Element eines Verzeichnisdiensts wird durch ein ADSI-Objekt dargestellt, bei dem es sich um ein Com-Objekt (Component Object Model) handelt, das die IUnknown-Standardschnittstelle com sowie die IDispatch - und IADs-Schnittstellen unterstützt. IADs stellen die grundlegenden Wartungsfunktionen für ADSI-Objekte bereit.

Jedes ADSI-Objekt muss diese Schnittstelle unterstützen, die folgendes dient:

  • Geben Sie die Objektidentifikation nach Name, Klasse oder ADsPath an.
  • Identifizieren Sie den Objektcontainer, der das Erstellen und Löschen von Objekten verwaltet.
  • Rufen Sie die Objektschemadefinition ab.
  • Laden Sie die Objektattribute in den Eigenschaftencache, und committen Sie Änderungen an den persistenten Verzeichnisspeicher.
  • Greifen Sie auf die Objektattributewerte im Eigenschaftencache zu, und ändern Sie sie.

Die IADs-Schnittstelle soll sicherstellen, dass ADSI-Objekte Netzwerkadministratoren und Verzeichnisdienstanbietern eine effiziente und konsistente Darstellung verschiedener zugrunde liegenden Verzeichnisdienste bereitstellen.

adsi-Objekt, das die iads-Schnittstelle unterstützt

Die vorherige Abbildung zeigt ein generisches ADSI-Objekt, das die grundlegenden Schnittstellen IADs, IADsPropertyList, IUnknown, IDirectoryObject und IDispatch unterstützt. Ein ADSI-Objekt wie dieses verwaltet Daten aus dem Datenspeicher des zugrunde liegenden Verzeichnisdiensts über die von ihm unterstützten Schnittstellen. Diese Daten werden als Eigenschaften des Objekts bezeichnet, und die Routinen, die diese Eigenschaften abrufen und festlegen, werden als Eigenschaftenmethoden bezeichnet. Schreibgeschützte Eigenschaften verfügen über eine Eigenschaftsmethode, die den Eigenschaftswert abruft. Lese-/Schreibeigenschaften verfügen über zwei Methoden: eine Methode, die den Wert festlegt, und eine Methode, die den Wert abruft. Eigenschaften werden für jedes ADSI-Objekt mithilfe eines Eigenschaftencaches implementiert. IADs::get_ADsPath und IADs::p ut_ADsPath sind Beispiele für Eigenschaftenmethoden. Eigenschaftenmethoden sind für Visual Basic- und andere Automation-Clients, die direkte Verweise auf die Eigenschaft ermöglichen, nicht sichtbar. Visual Basic bezieht sich beispielsweise direkt unter Verwendung der Object.ADsPath-Syntax auf IADs::ADsPath. Weitere Informationen finden Sie unter Schnittstelleneigenschaftenmethoden.

Darüber hinaus interagiert ein ADSI-Objekt mit anderen ADSI-Objekten und über Methoden direkt mit einem Namespace. Methoden werden sofort ausgeführt. Beispiele für Methoden sind IADs::SetInfo und IADs::GetInfo.

Der Zugriff auf Eigenschaften, Eigenschaftenmethoden und Methoden erfolgt über com-Standardschnittstellen.

Ein ADSI-Objekt wird durch seinen ADsPath eindeutig identifiziert. Beispielsweise ist ein ADsPath für den LDAP-Namespace "LDAP://MyServer/DC=Fabrikam,DC=COM". Weitere Informationen zu ADsPaths finden Sie unter ADSI-Bindung. Für Programmierer, die mit COM-Monikern vertraut sind, ähnelt dies konzeptuell dem Anzeigenamen des COM-Monikers.

Jedes ADSI-Objekt, das andere ADSI-Objekte enthält, die als ADSI-Containerobjekt bezeichnet werden, unterstützt auch die IADsContainer-Schnittstelle , die Methoden und Eigenschaften bereitstellt, die das Erstellen, Löschen und Aufzählen der im Objekt enthaltenen ADSI-Objekte verwalten. Die folgende Abbildung zeigt ein ADSI-Containerobjekt.

adsi-Containerobjekt

Die meisten ADSI-Objekte sind in anderen Objekten enthalten. Das einzige ADSI-Objekt ohne übergeordneten Container ist das ADSI Namespaces-Objekt der obersten Ebene ("ADS:").

Die IADs::SetInfo-Methode für ein Containerobjekt speichert die zwischengespeicherten Eigenschaften des ADSI-Containerobjekts zusätzlich zu allen Objekten, die mit der IADsContainer::Create-Methode erstellt wurden, dauerhaft im Speicher. IADsContainer::D elete wirkt sich nicht auf den Eigenschaftencache aus, löscht jedoch das zugrunde liegende Namespaceverzeichniselement, das von diesem Objekt dargestellt wird.