我們在Active Directory中擁有超過70,000個用戶帳戶。我需要檢查是否有人是該組的成員。代碼將在具有大量併發用戶的Web應用程序中運行。如果可能,我寧願堅持System.DirectoryServices.AccountManagement,以減少爲此應用程序編寫的代碼量。DirectoryServices.AccountManagement - 組會員檢查效率
似乎有2種通用的方法來檢查的人是否是一個成員:
- 使用UserPrincipal.IsMemberOf()得到一個布爾值,指示成員
- 使用UserPrincipal.GetGroups()獲得組成員的名單,我可以手動檢查
我想避免列舉70k用戶檢查是否有人在一個組中,所以選項2似乎更有效的面值。當我開始工作時,我可以針對兩種方法做一些測試,但我希望獲得關於這些方法在封面下的真正做法的一些信息。在我的思想中,我在正確的軌道上嗎?
關於我正在使用的庫的最後一點。如果我完全退出System.DirectoryServices.AccountManagement並編寫自己的LDAP查詢,我可以獲得更好的性能嗎?
此方法是否處理用戶屬於所需組的成員的情況? – VoteCoffee 2014-05-19 20:18:50
「優秀的文章」似乎已經移動。它可能是這樣的:http://tutorials.csharp-online.net/User_Management_with_Active_Directory%E2%80%94Determining_User_Group_Membership_in_Active_Directory_and_ADAM – mwardm 2014-06-03 15:02:34