Partager via


Choix d’une interface pour la liaison

Lorsqu’un objet d’annuaire est lié à, l’appelant spécifie le type d’interface ADSI souhaité. Tous les objets d’annuaire ADSI prennent en charge l’interface IADs . Un objet ADSI peut également prendre en charge d’autres interfaces. Les interfaces réelles prises en charge par l’objet dépendent de la classe de l’objet . Par exemple, un objet utilisateur prend en charge l’interface IADsUser , mais ne prend pas en charge l’interface IADsComputer .

Les clients Automation doivent utiliser les interfaces IAD* , car ces interfaces sont des interfaces doubles qui fournissent un niveau d’abstraction plus élevé et fournissent des données à l’aide du type de données VARIANT .

En plus des interfaces IADs*, les clients C/C++ peuvent utiliser les interfaces IDirectoryObject et IDirectorySearch . Ces interfaces ne sont pas des interfaces doubles et ne prennent pas en charge l’automatisation. Ces interfaces fournissent un plus grand contrôle sur les attributs à récupérer et autorisent l’accès aux données brutes stockées dans une propriété. Par exemple, lorsque la méthode IADs::Get est utilisée pour récupérer l’attribut ntSecurityDescriptor pour un objet, la méthode IADs::Get fournit un pointeur d’interface IDispatch qui prend en charge l’interface IADsSecurityDescriptor . L’interface IADsSecurityDescriptor est fournie par ADSI pour représenter un descripteur de sécurité. En comparaison, lorsque la méthode IDirectoryObject::GetObjectAttributes est utilisée pour récupérer l’attribut ntSecurityDescriptor , IDirectoryObject::GetObjectAttributes fournit un tableau d’octets pouvant être convertis en structure SECURITY_DESCRIPTOR . Les API de sécurité Win32 peuvent être utilisées avec ces données pour manipuler le descripteur de sécurité.