LdapConnection与DirectoryEntry

Bij*_*mas 12 c# active-directory directoryentry

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

哪一个最适合与AD互动?

bal*_*ate 6

在大多数情况下,您应该使用DirectoryEntry/DirectorySearcher(System.DirectoryServices或S.DS)与AD进行交互.它允许您使用更少的代码更轻松地完成工作.但对于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,比如幻像根搜索,或者你想手动处理"更多数据可用".但这些情况并不常见,至少在我多年的S.DS编码中并不需要.