Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Преобразование LDAP-запроса в Delphi с SQL-подобным синтаксисом

Delphi , Файловая система , Активные директории

Заголовок:

Вопрос: Как выполнить следующий LDAP-запрос в Delphi 2007 с использованием SQL-подобного синтаксиса, как в примерах ADO?

Базовая DN: OU=Groups,DC=office,DC=domain,DC=org Фильтр: (member:1.2.840.113556.1.4.1941:=CN=adam smith,OU=Users,DC=office,DC=domain,DC=org)

Подтвержденный ответ:

В Delphi можно использовать два подхода для доступа к данным в Active Directory: либо использовать "SQL-подобный" синтаксис ADO, либо импортировать библиотеку типов ActiveDs.tlb и использовать COM-интерфейсы, предоставляемые ADSI. В данном случае мы рассмотрим первый подход.

Ниже приведен пример кода на Object Pascal (Delphi) для выполнения LDAP-запроса с использованием TADOQuery:

var
  ADOQuery: TADOQuery;
begin
  ADOQuery := TADOQuery.Create(nil);
  try
    ADOQuery.Connection := TADOConnection.Create(nil);
    try
      ADOQuery.Connection.DriverName := 'ADsDSOObject';
      ADOQuery.Connection.Open('Active Directory Provider');

      ADOQuery.ConnectionString := 'Provider=ADsDSOObject;'
        + 'Data Source=''LDAP://OU=Groups,DC=office,DC=domain,DC=org'';'
        + 'User ID=domain\username;'
        + 'Password=password;'
        + 'Integrated Security=SSPI;';

      ADOQuery.CommandText := 'SELECT CN FROM ''LDAP://OU=Groups,DC=office,DC=domain,DC=org'''
        + ' WHERE member:1.2.840.113556.1.4.1941:=(CN=adam smith,OU=Users,DC=office,DC=domain,DC=org)';

      ADOQuery.Open;

      while not ADOQuery.EOF do
      begin
        // Обработка результатов запроса
        // ...

        ADOQuery.Next;
      end;
    finally
      ADOQuery.Connection.Free;
    end;
  finally
    ADOQuery.Free;
  end;
end;

В этом примере мы создаем объект TADOQuery и настраиваем его подключение к Active Directory с помощью TADOConnection. Затем мы устанавливаем ConnectionString и CommandText для TADOQuery, чтобы выполнить запрос. После открытия запроса мы обрабатываем результаты в цикле while not ADOQuery.EOF.

Примечание: Не забудьте заменить 'domain\username' и 'password' на свои действительные учетные данные домена.

Альтернативный ответ:

Если вам нужно выполнить более сложные LDAP-запросы или получить доступ к многозначным атрибутам, вы можете рассмотреть возможность импорта библиотеки типов ActiveDs.tlb и использования COM-интерфейсов ADSI. Однако это может быть несколько более сложным подходом, чем использование ADO с SQL-подобным синтаксисом.

Заключение:

В данной статье мы рассмотрели, как выполнить LDAP-запрос в Delphi с использованием SQL-подобного синтаксиса ADO. Мы предоставили пример кода на Object Pascal (Delphi), который демонстрирует, как выполнить запрос и обработать результаты.

Создано по материалам из источника по ссылке.

Вопрос о выполнении LDAP-запроса в Delphi 2007 с использованием SQL-подобного синтаксиса, как в примерах ADO, с предоставлением примера кода на Object Pascal и альтернативным подходом через импортирование библиотеки типов ActiveDs.tlb и использо


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Активные директории ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-01-29 02:29:19/0.024887084960938/1