2013-10-07 15 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,如幻影根搜索或您想手動處理「更多數據可用」。但是這些情況並不常見,至少在我的編碼年代不需要。