查询用户是否是组的成员

时间:2011-05-23 14:48:21

标签: delphi active-directory ldap ado delphi-2006

我没有使用Active Directory的经验。

我正在使用Delphi开发一个与Active Directory交互的应用程序。我需要知道测试Active Directory用户是否属于指定组的最佳方法。我该怎么做?

我正在使用Delphi 2006 BDS。

2 个答案:

答案 0 :(得分:2)

冒着自我推销投票的风险,我想与你分享netAPI.pas

对于活动目录没有丰富的经验且没有7以上的Delphi版本,我认为您可以使用以下代码获取特定组中的所有用户:

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

探索UserName的StringList。

答案 1 :(得分:1)

您应该考虑嵌套组,最简单的方法是使用包含(计算的)SID数组(包括嵌套组)的tokenGroups属性。从那里你可以将这个sid列表转换为名称(通过将其提供给DsCrackNames)或从你想要检查的组中获取SID并比较sids(EqualSid