2013-10-07 5 views
11

Qualcuno può spiegare la differenza tra l'utilizzo di LdapConnection/SearchRequest e DirectoryEntry/DirectorySearcher per la ricerca di utenti in ActiveDirectory.LdapConnection Vs DirectoryEntry

Qual è il più adatto per interagire con l'annuncio?

+2

Questa è una buona domanda. Ho sempre usato DirectoryEntry per AD e LdapConnection per soluzioni Ldap generiche ma non li ho mai confrontati. – empi

risposta

6

Nella maggior parte dei casi, è necessario utilizzare DirectoryEntry/DirectorySearcher (System.DirectoryServices o S.DS) per interagire con AD. Ti permette di fare le cose più facilmente con meno codice. Ma per LdapConnection/SearchRequest (System.DirectoryServices.Protocols o S.DS.P), fornisce un maggiore controllo in quanto offre accesso LDAP di livello inferiore. Per le directory conformi a LDAP diverse da AD, è opportuno utilizzare S.DS.P.

Con S.DS.P, in generale è necessario scrivere più codice per ottenere la stessa cosa rispetto a S.DS.

Ad esempio, per una ricerca a pagina in S.DS.P, è necessario gestire la richiesta e la risposta per OGNI PAGINA dei risultati. Ma in S.DS, è sufficiente impostare DirectorySearcher.PageSize e quindi ottenere tutti i risultati in tutte le pagine da DirectorySearcher.FindAll().

Ci sono cose che è necessario utilizzare S.DS.P, come la ricerca della radice fantasma o si desidera gestire manualmente "più dati sono disponibili". Ma quelle situazioni non sono comuni, almeno non necessarie nei miei anni di codifica di S.DS.