2013-10-07 17 views
11

任何人都可以解释使用LdapConnection/SearchRequest和的DirectoryEntry /的DirectorySearcher在ActiveDirectory中搜索用户的区别。LdapConnection Vs的的DirectoryEntry

哪一个最适合与AD进行交互?

+2

这是一个很好的问题。我一直使用AD的DirectoryEntry和LdapConnection来获得通用的Ldap解决方案,但我从来没有对它们进行过比较。 – empi

回答

6

在大多数情况下,你应该使用的DirectoryEntry /的DirectorySearcher(或的System.DirectoryServices S.DS)与广告进行互动。它使您可以用更少的代码更轻松地完成任务。但对于LdapConnection/SearchRequest(System.DirectoryServices.Protocols或S.DS.P),它提供了,因为它提供了较低的水平LDAP访问更多的控制。对于AD以外的LDAP兼容目录,最好使用S.DS.P.

对于S.DS.P,一般来说,与S.DS相比,您需要编写更多代码才能达到相同的效果。

例如,对于S.DS.P中的分页搜索,您需要处理每一页结果的请求和响应。但在S.DS中,您只需设置DirectorySearcher.PageSize,然后从DirectorySearcher.FindAll()的所有页面中获取所有结果。

有些东西,您必须使用S.DS.P,如幻影根搜索或您想手动处理“更多数据可用”。但是这些情况并不常见,至少在我的编码年代不需要。