Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 仅在C中的指定组中搜索Active Directory用户#_C#_.net_Active Directory - Fatal编程技术网

C# 仅在C中的指定组中搜索Active Directory用户#

C# 仅在C中的指定组中搜索Active Directory用户#,c#,.net,active-directory,C#,.net,Active Directory,我一直在努力寻找一种查询特定广告组成员的好方法 我在查找组方面没有问题,甚至在根据标准查询用户方面也没有问题 目前我有 PrincipalContext context = new PrincipalContext(ContextType.Domain, _domain, ADServerUser, ADServerPassword); UserPrincipal userPrinciple = new UserPrincipal(context); userPrinciple.Given

我一直在努力寻找一种查询特定广告组成员的好方法

我在查找组方面没有问题,甚至在根据标准查询用户方面也没有问题

目前我有

 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();
这给了我所有我想要的用户,但是它没有过滤组

我可以将GroupPrinciple对象与主体搜索一起使用,但这样就无法过滤用户

我希望有一种方法能够同时应用UserPrincipal和GroupPrincipal,通过Group和User参数过滤返回的结果

我使用了一个linq where子句尝试进行匹配,以查看用户是否在一个组中,但当我得到所有用户时,查询超时。总的来说是有道理的

但是,如果查询出该组,则无法使用principalSearcher应用查询


关于如何做到这一点,有什么想法吗?

根据我的研究,我得出结论,使用主要对象来过滤组和用户参数是不可能的。我们需要重新使用查询字符串方法来解决这个问题。

根据我的研究,我得出结论,使用主要对象来过滤组和用户参数是不可能的。我们需要恢复到使用查询字符串方法来AD来解决问题。

Blast\u dan,请显示此代码所在的方法。实际上,很难确定如何定义
pFirstName、pUserName、pLastName和context
它们是简单的方法属性。字符串。我看到您的一个问题Blast_dan,您在哪里传递要搜索的组..?这就是问题所在,我不知道如何传递要搜索的组。Blast_dan,请显示此代码所在的方法。实际上,很难确定如何定义
pFirstName、pUserName、pLastName和context
它们是简单的方法属性。字符串。我看到你的一个问题,Blast_dan,你在哪里传递要搜索的组..?这就是问题所在,我不知道如何传递要搜索的组。抱歉,我添加了什么上下文,我也不关心组名,我想在指定组中搜索,并对指定组中的用户应用筛选器。然后我应该返回UsersNo,我想过滤成员的名字和姓氏。我找不到同时查询用户和组的方法,或者我添加了什么上下文,而且我不关心组名称,我想在指定组中搜索并对指定组中的用户应用筛选器。然后我应该返回UsersNo,我想过滤成员的名字和姓氏。我找不到同时查询用户和组的方法
PrincipalContext ctx = new PrincipalContext(ContextType.Domain, _domain);
// get the AD Group you are wanting to Query
GroupPrincipal group = GroupPrincipal.FindByIdentity("cn=YourGroupname");
foreach(Principal p in group.Members)
{
    //do what ever coding you need to do here            
}