2010-04-16 49 views
4

我知道System.DirectoryServices是System.DirectoryServices.Protocols中的“上方的图层”,并摘录了一些复杂性。使用DirectorySearcher通过SearchRequest进行LDAP查询有没有任何性能优势

使用System.DirectoryServices.DirectorySearcher与System.DirectoryServices.Protocols.SearchRequest进行LDAP的LDAP查询有没有其他优点,性能或其他方面的优势。

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

回答

9

在过去的几个月中,我已经处理了两个库,如果您要处理大型数据集,我可以告诉您有一些很大的差异,,特别是This blog post概括了几个问题,并且处理了包含超过500,000个条目的LDAP实例,我可以保证其准确性。

System.DirectoryServices命名空间在表面下使用了很多ADSI和COM,这会增加很多开销,特别是在处理对象时。 System.DirectoryServices.Protocols直接与低级别的LDAP API交互,为您提供更多的控制和更好的与非Microsoft目录的互操作性。如果你想要实现的只是一些快速简单的连接到AD/ADAM/ADLDS实例的相对简单的操作,它可能值得坚持使用该命名空间 - 否则,我会强烈建议你投入时间学习Protocols命名空间。当我最初学习时,发现this MSDN article是一个巨大的帮助 - 它涵盖了几乎所有你需要知道的东西。

+0

很好的回答..谢谢。您碰到了一些我的难点:1)非常大的LDAP实例,以及2)非AD LDAP(我们正在使用Tivoli Directory Services)。 – WayneC 2010-04-16 17:12:10

+0

来自MSDN的文章已经移动:( – Bryan 2012-11-07 15:21:20

相关问题