查询用户是否是组的成员

问题描述

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

解决方法

您应该考虑嵌套组,最简单的方法是使用tokenGroups属性,该属性包含一个(计算的)SID数组(包括嵌套组)。从那里,您可以将sid列表转换为名称(通过将其馈送到DsCrackNames),也可以从希望检查和比较sid的组中获取SID(EqualSid)     ,冒着自我推广的票数低的风险,我想与大家分享netAPI.pas。 我对活动目录没有丰富的经验,并且没有使用高于7的Delphi版本,我确实希望您可以使用以下代码从特定组中获取所有用户:
GetNetGroupUsers([ServerName],[GroupName],[StringList not nil],False,True);
探索该StringList作为您的用户名。