C# 快速查询Active Directory
假设我有一张SID的名单 目前我正在查询每个SID的AD。差不多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(); ..... }
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,我编辑我的答案,以纳入您的评论。”。