快速查询Active Directory

本文关键字:Directory Active 查询 | 更新日期: 2023-09-27 17:57:36

假设我有一个SID列表。

目前,我正在为每个SID查询AD。类似的东西

foreach(string sidString in listOfSid)
{
    DirectorySearcher search = new ....
    search.Filter = string.Format("(objectSid={0})", ConvertToOctetString(sidString));
    var result = search.FindOne();
    .....
}

有比这更快的方法吗?有没有一种方法可以在一个镜头中查询所有信息,而不是循环?

快速查询Active Directory

我不确定我是否理解你的问题,但为什么不在循环中构建一个过滤器,然后搜索一次呢。过滤器看起来像:

(|(objectSid=sid1)(objectSid=sid2)(...)(objectSid=sidn))

如果你有.NET 3.5或更高版本,那么你可以使用主体。

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