Опрос, если пользователь является членом группы - PullRequest
2 голосов
/ 23 мая 2011

У меня нет опыта работы с Active Directory.

Я использую Delphi для разработки приложения, взаимодействующего с Active Directory.Мне нужно знать лучший способ проверить, принадлежит ли пользователь Active Directory к указанной группе.Как мне это сделать?

Я использую BDS Delphi 2006.

Ответы [ 2 ]

2 голосов
/ 23 мая 2011

Рисуя отрицательным голосом за саморекламу, я хотел бы поделиться с вами netAPI.pas .

Не имея большого опыта работы с активным каталогом и не имея версии Delphi выше 7, я полагаю, что вы можете получить всех пользователей из определенной группы с помощью следующего кода:

GetNetGroupUsers([ServerName], [GroupName], [StringList not nil], False, True);

Изучите этот StringList для своего имени пользователя.

1 голос
/ 24 мая 2011

Следует учитывать вложенные группы, самый простой способ - использовать атрибут tokenGroups , который содержит (вычисляемый) массив идентификаторов безопасности (включая вложенные группы). Оттуда вы можете либо преобразовать этот список sids в имена (введя его в DsCrackNames ), либо получить SID из группы, которую вы хотите проверить и сравнить sids ( EqualSid )

...