我知道System.DirectoryServices是一个“上面的层”System.DirectoryServices.Protocols并且抽象了一些复杂性. 使用System.DirectoryServices.DirectorySearcher与System.DirectoryServices.Protocols.SearchRequest进行LDAP查询是
使用System.DirectoryServices.DirectorySearcher与System.DirectoryServices.Protocols.SearchRequest进行LDAP查询是否有任何其他优点,性能或其他方面.
什么标准会导致您使用一种方法而不是另一种方法?
在过去的几个月里,我们经常处理这两个库,我可以告诉你,存在一些很大的差异,特别是如果你正在处理大型数据集. This blog post概述了一些问题,并且处理了包含超过500,000个条目的LDAP实例,我可以保证其准确性.System.DirectoryServices命名空间在表面下使用了大量的ADSI和COM,这会增加很多开销,特别是在处理对象时. System.DirectoryServices.Protocols直接与低级LDAP API交互,为您提供更多控制和更好的与非Microsoft目录的互操作性.
如果你想要实现的只是为了相对简单的操作而快速轻松地连接到AD / ADAM / ADLDS实例,那么可能值得坚持使用该命名空间 – 否则,我强烈建议你花时间学习协议命名空间.当我最初学习时,我发现this MSDN article是一个巨大的帮助 – 它几乎涵盖了你需要知道的一切.