Как получить доступ к объектам с помощью поставщика ADSI LDAP, используя механизм ADO

Аннотация

Поставщик Active Directory Service Interfaces (ADSI) Lightweight Directory Access Protocol (LDAP) поддерживает интерфейсы на основе OLE DB, позволяющие получать доступ к объектам LDAP Compliant Directories, используя ADO. Вы должны создать объект подключения ADO и установить значение "ADsDSOObject" для свойства "Provider". Вы можете указать любую строку, включая пустую, в качестве строки подключения (первого аргумента) для метода "Open" объекта подключения ADO.



Объект "CommandText" метода "Execute" объекта подключения представляет собой запрос LDAP, состоящий из четырых элементов, разделенных точкой с запятой, и представленных в следующем формате:

<LDAP://server/adsidn>;ldapfilter;attributescsv;scope
где:


  • "server" - имя (или IP-адрес) сервера, выполняющего роль ведущего узла.

  • "adsidn" - это отличительное имя (DN) начальной точки запроса в формате ADsPath c разделителями в виде "/" и корневым пространством имен в левой части. Вы можете, также, использовать формат имен с атрибутами в стиле Х.500 с относительными отличительными именами, разделенными запятыми, и корневым пространством имен справа.

  • "ldapfilter" - строка фильтра LDAP (обратитесь к спецификации "rfc2254").

  • "attributescsv" - список названий атрибутов, разделенных запятыми, которые должны быть возвращены для каждой строки в наборе записей.

  • "scope" - любое из следующих значений: "base", "onelevel" или "subtree". Примечание: Спецификация "rfc2253" описывает синтаксис LDAP, на котором основан синтаксис ADSI LDAP.



Для возврата значения ADsPath, класса и атрибутов всех объектов во всех контейнерах получателей на сервере Exchange Вы можете использовать объект CommandText (в формате URL):

LDAP:<//server/o=organization/ou=site/cn=recipients>;
(objectClass=*);ADsPath,objectClass,cn;subtree''
или (в формате атрибутов имен):

<LDAP://server/cn=recipients,ou=site,o=organization>, _
(objectClass=*);ADsPath,objectClass;subtree

Дополнительная информация

Следующий пример кода на MS Visual Basic иллюстрирует данный запрос:

Пример кода

      Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset

Set conn = New ADODB.Connection
conn.Provider = "ADSDSOObject"
conn.Open "ADs Provider"

Set rs = conn.Execute( _
"<LDAP://server/o=organization/ou=site/cn=recipients>;" _
& "(objectClass=*);ADsPath,objectClass,cn;subtree")

While Not rs.EOF
Debug.Print rs.Fields(0).Value, rs.Fields(1).Value, _
rs.Fields(2).Value
rs.MoveNext
Wend

conn.Close

Ссылки

За дополнительной информацией по общим положениям спецификаций LDAP RFC, включая спецификации "RFC 2253" и "RFC 2254", обратитесь к следующей статье Microsoft Knowledge Base:

221606 Common LDAP RFCs
За дополнительной информацией обратитесь к следующей статье Microsoft Knowledge Base:



275917 PRB: ADSI 2.5 and MDAC 2.6 Compatibility Issues
Свойства

Номер статьи: 187529 — последний просмотр: 18 авг. 2003 г. — редакция: 1

Отзывы и предложения