Auswählen einer Schnittstelle für die Bindung
Wenn ein Verzeichnisobjekt an gebunden ist, gibt der Aufrufer den gewünschten AdsI-Schnittstellentyp an. Alle ADSI-Verzeichnisobjekte unterstützen die IADs-Schnittstelle. Ein ADSI-Objekt kann auch andere Schnittstellen unterstützen. Die tatsächlichen Schnittstellen, die vom -Objekt unterstützt werden, hängen von der Objektklasse ab. Beispielsweise unterstützt ein Benutzerobjekt die IADsUser-Schnittstelle, aber nicht die IADsComputer-Schnittstelle.
Automatisierungsclients sollten die Schnittstellen *IADs * _ verwenden, da es sich bei diesen Schnittstellen um duale Schnittstellen handelt, die ein höheres Maß an Abstraktion bereitstellen und Daten mithilfe des _VARIANT-Datentyps * bereitstellen.
Zusätzlich zu den Schnittstellen *IADs * _ können C/C++-Clients die Schnittstellen _ IDirectoryObject * und IDirectorySearch verwenden. Diese Schnittstellen sind keine dualen Schnittstellen und unterstützen keine Automatisierung. Diese Schnittstellen bieten eine bessere Kontrolle über genau die Attribute, die abgerufen werden sollen, und ermöglichen den Zugriff auf die in einer Eigenschaft gespeicherten Rohdaten. Wenn beispielsweise die IADs::Get-Methode zum Abrufen des ntSecurityDescriptor-Attributs für ein Objekt verwendet wird, stellt die IADs::Get-Methode einen IDispatch-Schnittstellenzeiger bereit, der die IADsSecurityDescriptor-Schnittstelle unterstützt. Die IADsSecurityDescriptor-Schnittstelle wird von ADSI bereitgestellt, um einen Sicherheitsdeskriptor zu darstellen. Wenn dagegen die IDirectoryObject::GetObjectAttributes-Methode zum Abrufen des ntSecurityDescriptor-Attributs verwendet wird, stellt IDirectoryObject::GetObjectAttributes ein Bytearray zur Auswahl, das in eine SECURITY _ DESCRIPTOR-Struktur umgestellt werden kann. Die Win32-Sicherheits-APIs können mit diesen Daten verwendet werden, um den Sicherheitsdeskriptor zu bearbeiten.