【发布时间】:2009-12-15 02:53:36
【问题描述】:
我们在 Active Directory 中有一个拥有超过 70k 用户帐户的组。我需要检查某人是否是该组的成员。该代码将在具有大量并发用户的 Web 应用程序中运行。如果可能的话,我宁愿坚持使用System.DirectoryServices.AccountManagement,以减少为此应用程序编写的代码量。
检查某人是否是会员似乎有两种通用方法:
- 使用UserPrincipal.IsMemberOf() 获取表示成员资格的布尔值
- 使用UserPrincipal.GetGroups() 获取我可以手动检查的群组成员列表
我想避免枚举 70k 用户来检查是否有人在一个组中,所以选项 2 在面值上似乎更有效。当我开始工作时,我可以对这两种方法进行一些测试,但我想了解这些方法在幕后的实际作用。我的想法是否正确?
关于我正在使用的库的最后一点。如果我完全退出 System.DirectoryServices.AccountManagement 并编写自己的 LDAP 查询,是否可以获得更好的性能?
【问题讨论】:
标签: c# asp.net performance active-directory ldap