При работе с Active Directory (AD) в Delphi часто требуется получить уникальный идентификатор (GUID) пользователя. В этом материале мы рассмотрим, как это сделать, учитывая некоторые нюансы, которые могут возникнуть в процессе.
Задача
Нам нужно получить уникальный GUID пользователя Active Directory в Delphi. Для этого мы будем использовать интерфейс IADsUser, который предоставляет доступ к свойствам пользователя.
Решение
Используя интерфейс IADsUser, мы можем получить доступ к свойству GUID, которое должно содержать уникальный идентификатор пользователя. Однако, как было отмечено в контексте, это свойство возвращает одинаковое значение для всех пользователей, что неверно.
Чтобы получить правильный уникальный GUID пользователя, мы можем воспользоваться объектом IADsNameTranslate, который позволяет преобразовывать имена пользователей в GUID. Вот пример кода на Object Pascal (Delphi), который демонстрирует это:
uses
ActiveX,
ADODB;
// Создаем объект IADsNameTranslate
var
NameTranslate: IADsNameTranslate;
begin
NameTranslate := CreateOleObject('NameTranslate') as IADsNameTranslate;
try
// Инициализируем объект
NameTranslate.Init(ADS_NAME_INITTYPE_GC, '');
// Устанавливаем имя пользователя в формате NT4
NameTranslate.Set(ADS_NAME_TYPE_NT4, 'your_domain\your_username');
// Получаем GUID пользователя
var
GUID: string;
begin
GUID := NameTranslate.Get(ADS_NAME_TYPE_GUID);
// Теперь вы можете использовать переменную GUID, содержащую уникальный идентификатор пользователя
end;
finally
// Освобождаем объект
NameTranslate := nil;
end;
end;
В этом примере мы создаем объект IADsNameTranslate, инициализируем его и устанавливаем имя пользователя в формате NT4. Затем мы получаем GUID пользователя, вызвав метод Get с параметром ADS_NAME_TYPE_GUID. Полученный GUID можно использовать для дальнейшей работы с пользователем в Active Directory.
Заключение
При работе с Active Directory в Delphi для получения уникального GUID пользователя можно использовать объект IADsNameTranslate. Это позволяет получить правильный уникальный идентификатор пользователя, который можно использовать в дальнейшей работе с Active Directory.
Материал описывает, как получить уникальный идентификатор (GUID) пользователя Active Directory в Delphi с использованием интерфейса IADsNameTranslate для получения корректного результата.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.