我一直在努力寻找一种查询指定 AD 组成员的好方法。
我在查找组,甚至根据条件查询用户方面没有问题。
目前我有
PrincipalContext context = new PrincipalContext(ContextType.Domain, _domain, ADServerUser, ADServerPassword);
UserPrincipal userPrinciple = new UserPrincipal(context);
userPrinciple.GivenName = "stringToSearchForFirstName";
userPrinciple.Name = "stringToSearchForUserName";
userPrinciple.Surname = "stringToSearchForLastName";
PrincipalSearcher srch = new PrincipalSearcher(new UserPrincipal(context));
srch.QueryFilter = userPrinciple;
var result = srch.FindAll();
这为我提供了我想要的所有用户,但它不会过滤组。
我可以将 GroupPrincipal 对象与主体搜索一起使用,但我无法过滤掉用户。
我有点想要一种方法,能够同时应用 UserPrincipal 和 GroupPrincipal 来过滤由 Group 和 User 参数返回的结果。
我使用了一个 linq where 子句来尝试进行匹配以查看用户是否在一个组中,但是当我得到所有用户时,查询超时。总的来说是有道理的。
但是,如果我查询该组,我无法使用 principalSearcher 来应用查询。
关于如何做到这一点的任何想法?