问题描述
我没有使用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作为您的用户名。