Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.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#_Asp.net Mvc_Linq To Ldap - Fatal编程技术网

C# 为什么我的过滤器在排除广告组时不返回结果?

C# 为什么我的过滤器在排除广告组时不返回结果?,c#,asp.net-mvc,linq-to-ldap,C#,Asp.net Mvc,Linq To Ldap,我正在使用linq to ldap生成active Directory用户列表。在本例中,我所做的是从列表中排除无用用户(设备和普通用户)。但是,当我这样做时,我的搜索/筛选不再返回结果。这是我的密码: public ActionResult Index(string sortOrder, string currentFilter, string searchString, int?page) { int pageSize = 20; int pageNumber = (page

我正在使用
linq to ldap
生成active Directory用户列表。在本例中,我所做的是从列表中排除无用用户(设备和普通用户)。但是,当我这样做时,我的搜索/筛选不再返回结果。这是我的密码:

public ActionResult Index(string sortOrder, string currentFilter, string searchString, int?page)
{
    int pageSize = 20;
    int pageNumber = (page ?? 1);
    var user = context.Query<ADUser>().ToList().Where
        (u => u.FirstName != null 
        && u.LastName != null
       && !u.DistinguishedName.Contains("ADGROUP1")
       && !u.DistinguishedName.Contains("ADGROUP2"));
     if (searchString != null)
     {
        page = 1;
     }
     else
     {
        searchString = currentFilter;
     }

     ViewBag.CurrentFilter = searchString;

     if (!String.IsNullOrEmpty(searchString))
     {
        user = user.Where(y => y.FirstName.Equals(searchString)
            || y.FirstName.Contains(searchString)
            || y.LastName.Equals(searchString)
            || y.LastName.Contains(searchString))
            .OrderBy(e => e.FirstName);
     }

     switch (sortOrder)
     {
        case "FirstName_desc":
            user = user.OrderByDescending(e => e.FirstName);
            break;
        default:
            user = user.OrderBy(e => e.FirstName);
            break;
     }

     return View(user.ToPagedList(pageNumber,pageSize));
 }
public ActionResult索引(字符串排序器、字符串currentFilter、字符串搜索字符串、int?页)
{
int pageSize=20;
整数页码=(第1页);
var user=context.Query().ToList()。其中
(u=>u.FirstName!=null
&&u.LastName!=null
&&!u.DifferentiedName.Contains(“ADGROUP1”)
&&!u.DifferentiedName.Contains(“ADGROUP2”);
if(searchString!=null)
{
page=1;
}
其他的
{
searchString=currentFilter;
}
ViewBag.CurrentFilter=搜索字符串;
如果(!String.IsNullOrEmpty(searchString))
{
user=user.Where(y=>y.FirstName.Equals(searchString)
||y.FirstName.Contains(搜索字符串)
||y.LastName.Equals(搜索字符串)
||y.LastName.Contains(搜索字符串))
.OrderBy(e=>e.FirstName);
}
开关(分拣机)
{
案例“FirstName_desc”:
user=user.OrderByDescending(e=>e.FirstName);
打破
违约:
user=user.OrderBy(e=>e.FirstName);
打破
}
返回视图(user.ToPagedList(pageNumber,pageSize));
}
我无法理解的是,当我对上述代码进行以下更改时:

改变

var user = context.Query<ADUser>().ToList().Where
var user=context.Query().ToList().Where

var user=context.Query()。其中
//并删除以下代码
&& !u、 DifferentiedName.Contains(“ADGROUP1”)
&& !u、 区分名称。包含(“ADGROUP2”);
//最后添加以下内容
返回视图(user.ToList().ToPagedList(pageNumber,pageSize));

我可以按计划使用搜索功能。我遗漏了什么?

您是否尝试过使用不明确的名称解析()context.Query().FilterWith($”(&(objectClass=user)(objectCategory=person)(anr={searchstring})))添加一个试用代码以查看是否出现异常。@WilliamHan是
anr
应该是
?@Skulomania anr不是,它是LDAP anr筛选器。请查看microsoft的链接,以了解它在搜索中使用的属性。@WilliamHan我尝试了您的建议,但在没有搜索筛选器的情况下,分页没有返回任何结果
var user = context.Query<ADUser>().Where
//and remove the following code
&& !u.DistinguishedName.Contains("ADGROUP1")
&& !u.DistinguishedName.Contains("ADGROUP2"));
//finally add the following
return View(user.ToList().ToPagedList(pageNumber,pageSize));