代码之家  ›  专栏  ›  技术社区  ›  WayneC

使用DirectorySearcher比使用SearchRequest进行LDAP查询有什么性能优势吗?

  •  4
  • WayneC  · 技术社区  · 14 年前

    我了解System.DirectoryServices是System.DirectoryServices.Protocols之上的一个“层”,它抽象了一些复杂性。

    使用System.DirectoryServices.DirectorySearch与System.DirectoryServices.Protocols.SearchRequest进行.NET中的LDAP查询是否有其他优点(性能或其他方面)。

    什么标准会使你使用一种方法而不是另一种方法?

    1 回复  |  直到 14 年前
        1
  •  9
  •   PatrickJ    14 年前

    在过去的几个月里,我已经处理了两个图书馆的很多事情,我可以告诉你有一些很大的不同, 尤其地 如果你处理的是大型数据集。 This blog post 概述了其中的一些问题,并且处理了包含超过500000个条目的LDAP实例,我可以保证它的准确性。

    这个 System.DirectoryServices 名称空间在表面下使用了大量的ADSI和COM,这会增加很多开销,特别是在处理对象时。这个 System.DirectoryServices.Protocols 直接与低级别的LDAP API交互,使您能够更好地控制非Microsoft目录,并具有更好的互操作性。

    如果您所要实现的只是为了相对简单的操作而快速方便地连接到AD/Adam/Adlds实例,那么坚持使用该名称空间可能是值得的——否则,我强烈建议您花时间学习协议名称空间。我发现 this MSDN article 当我刚开始学习的时候,要想成为一个巨大的帮助-它几乎涵盖了你需要知道的一切。