【发布时间】:2013-02-07 22:55:27
【问题描述】:
我一直在努力寻找一种查询指定 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 来应用查询。
关于如何做到这一点的任何想法?
【问题讨论】:
-
Blast_dan,请说明这段代码所在的方法。很难确定你是如何定义
pFirstName, pUserName, pLastName and context -
它们是简单的方法属性。字符串。
-
我看到你的一个问题 Blast_dan,你在哪里通过组搜索..?
-
就是这个问题,不知道怎么传进群里搜索。
标签: c# .net active-directory