Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.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# 快速查询Active Directory_C#_.net_Active Directory - Fatal编程技术网

C# 快速查询Active Directory

C# 快速查询Active Directory,c#,.net,active-directory,C#,.net,Active Directory,假设我有一张SID的名单 目前我正在查询每个SID的AD。差不多 foreach(string sidString in listOfSid) { DirectorySearcher search = new .... search.Filter = string.Format("(objectSid={0})", ConvertToOctetString(sidString)); var result = search.FindOne(); ..... }

假设我有一张SID的名单

目前我正在查询每个SID的AD。差不多

foreach(string sidString in listOfSid)
{
    DirectorySearcher search = new ....

    search.Filter = string.Format("(objectSid={0})", ConvertToOctetString(sidString));

    var result = search.FindOne();

    .....
}

还有比这更快的方法吗?有没有一种方法可以一次查询所有信息而不是循环?我不确定我是否理解你的问题,但是为什么不在循环中构建一个过滤器,然后搜索一次呢。过滤器的外观如下所示:

(|(objectSid=sid1)(objectSid=sid2)(...)(objectSid=sidn))
如果你有.NET3.5或更高版本,那么你可以


根据,服务器尝试处理的最大LDAP请求大小为10485760字节。如果服务器收到大于此值的请求,则会关闭连接。话虽如此,我从未测试过它。

它必须用C语言完成吗?谢谢!就是这样!我不确定过滤器的语法是什么。现在我明白了。是的,有点奇怪,它使用波兰语表示法(PN)或前缀表示法,这是一种数学表示法,其中每个运算符都以其所有操作数为前缀。感谢您的知识!我想知道这是哪种语法。过滤器的长度有限制吗?“我需要相同的功能,可能有数百个SID。@Garetohen,我编辑我的答案,以纳入您的评论。”。