Compartilhar via


Usando as interfaces IADs

ADSI, cada elemento de um serviço de diretório é representado por um objeto ADSI, que é um objeto COM (Component Object Model) que oferece suporte à interface IUnknown COM padrão, bem como as interfaces IDispatch e IADs. Os IADs fornecem as funções básicas de manutenção para objetos ADSI.

Cada objeto ADSI deve oferecer suporte a essa interface, que serve para:

  • Forneça identificação de objeto por nome, classe ou ADsPath.
  • Identifique o contêiner de objeto que gerencia a criação e a exclusão de objetos.
  • Obtenha a definição do esquema do objeto.
  • Carregue os atributos de objeto no cache de propriedades e confirme as alterações no repositório de diretórios persistente.
  • Acesse e modifique os valores de atributo de objeto no cache de propriedades.

A interface de IADs foi projetada para garantir que os objetos ADSI forneçam aos administradores de rede e provedores de serviços de diretório uma representação eficiente e consistente de vários serviços de diretório subjacentes.

adsi object supporting the iads interface

A figura anterior mostra um objeto ADSI genérico que oferece suporte às interfaces fundamentais IADs, IADsPropertyList, IUnknown, IDirectoryObject e IDispatch. Um objeto ADSI como esse gerencia dados do armazenamento de dados do serviço de diretório subjacente por meio das interfaces suportadas. Esses dados são conhecidos como as propriedades do objeto, e as rotinas que obtêm e definem essas propriedades são conhecidas como métodos de propriedade. As propriedades somente leitura têm um método de propriedade que obtém o valor da propriedade. As propriedades de leitura/gravação têm dois métodos; um método que define o valor e um que obtém o valor. As propriedades são implementadas em cada objeto ADSI usando um cache de propriedades. IADs::get_ADsPath e IADs::p ut_ADsPath são exemplos de métodos de propriedade. Métodos de propriedade não são aparentes para Visual Basic e outros clientes de automação que permitem referências diretas para a propriedade. Por exemplo, Visual Basic refere-se a IADs::ADsPath diretamente usando a sintaxe Object.ADsPath. Para obter mais informações, consulte Métodos de propriedade de interface.

Além disso, um objeto ADSI interage com outros objetos ADSI e diretamente com um namespace por meio de métodos. Os métodos são executados imediatamente. Exemplos de métodos incluem IADs::SetInfo e IADs::GetInfo.

Propriedades, métodos de propriedade e métodos são acessados por meio de interfaces COM padrão.

Um objeto ADSI é identificado exclusivamente por seu ADsPath. Por exemplo, um ADsPath para o namespace LDAP é "LDAP://MyServer/DC=Fabrikam,DC=COM". Para obter mais informações sobre ADsPaths, consulte Vinculação ADSI. Para programadores familiarizados com apelidos COM, isso é conceitualmente semelhante ao nome de exibição do moniker COM.

Qualquer objeto ADSI que contenha outros objetos ADSI, chamado de objeto de contêiner ADSI, também oferece suporte à interface IADsContainer , que fornece métodos e propriedades que gerenciam a criação, exclusão e enumeração de objetos ADSI contidos pelo objeto. A figura a seguir mostra um objeto de contêiner ADSI.

adsi container object

A maioria dos objetos ADSI são contidos por outros objetos. O único objeto ADSI sem contêiner pai é o objeto ADSI Namespaces de nível superior ("ADS:").

O método IADs::SetInfo em um objeto de contêiner armazena persistentemente as propriedades armazenadas em cache do objeto de contêiner ADSI para armazenamento, além de quaisquer objetos criados com o método IADsContainer::Create. IADsContainer::D elete não afeta o cache de propriedades, mas exclui o elemento de diretório de namespace subjacente representado por esse objeto.