13

谁能解释使用 LdapConnection/SearchRequest 和 DirectoryEntry/DirectorySearcher 在 ActiveDirectory 中搜索用户之间的区别。

哪一个最适合与 AD 交互?

4

1 回答 1

7

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

与 S.DS 相比,使用 S.DS.P,通常您需要编写更多代码来实现相同的目标。

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

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

于 2014-11-15T08:32:58.643 回答