查询用户是否是组的成员
我没有使用 Active Directory 的经验。
我正在使用 Delphi 开发一个与 Active Directory 交互的应用程序。我需要知道测试 Active Directory 用户是否属于指定组的最佳方法。我该怎么做?
我正在使用 Delphi 2006 BDS。
I have no experience with Active Directory.
I am using Delphi to develop an application which interacts with Active Directory. I need to know the best way to test whether an Active Directory user belongs to a specified group. How do I do that?
I'm using Delphi 2006 BDS.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我想与您分享 NLDNetAPI.pas。
由于没有丰富的活动目录经验,并且没有 7 以上的 Delphi 版本,我确实认为您可以使用以下代码从特定组中获取所有用户:
探索您的 UserName 的 StringList。
I'd like to share you NLDNetAPI.pas.
Having no extensive experience with active directory and not being in the possession of a Delphi version above 7, I do suppose that you could obtain all the users from a particular group with the following code:
Explore that StringList for your UserName.
您应该考虑嵌套组,最简单的方法是使用 tokenGroups 属性,包含(计算的)SID 数组(包括嵌套组)。从那里您可以将此 sids 列表转换为名称(通过将其提供给 DsCrackNames)或从您要检查并比较 sids 的组获取 SID (EqualSid)
You should take nested groups into account, the easiest way is to use the tokenGroups attribute that contains a (computed) array of SID's (including nested groups). From there you can either convert this list of sids to names (by feeding it to DsCrackNames) or get the SID from the group you wish to check and compare sids (EqualSid)