Ricerca nella directory

L'attività più comunemente svolta con le directory è la ricerca. Sebbene sia possibile utilizzare l'oggetto DirectoryEntry per ricerche semplici, come trovare un singolo oggetto directory necessario per un'operazione normale quale l'associazione al dominio, mediante tale oggetto non è possibile eseguire ricerche complesse o ottenere un numero elevato di risultati.

Per aggiungere un'operazione di ricerca efficace all'applicazione, utilizzare l'oggetto DirectorySearcher. L'oggetto DirectorySearcher fornisce un insieme di proprietà e metodi che consentono di selezionare più criteri di ricerca, come un ambito di ricerca, filtri, stringhe con caratteri jolly, dimensioni della pagina per gli insiemi di risultati e ordinamento.

In questa sezione vengono presentati i seguenti argomenti:

Prima di eseguire una ricerca, è necessario conoscere l'oggetto DirectorySearcher e i concetti alla base della ricerca nella directory. Se in precedenza è stato utilizzato ADSI, è possibile che sia stata usata l'interfaccia IDirectorySearch COM. L'oggetto DirectorySearcher è un wrapper per IDirectorySearch. Per ulteriori informazioni su questa interfaccia, vedere l'argomento IDirectorySearch in MSDN Library all'indirizzo https://go.microsoft.com/fwlink/?LinkID=27252 (informazioni in lingua inglese).

Per eseguire una ricerca è necessario che l'applicazione contenga un'associazione a una radice virtuale della directory. Per ottenere prestazioni ottimali, selezionare un punto che genererà l'insieme di risultati più piccolo. Configurare DirectorySearcher in modo che fornisca i parametri seguenti per l'operazione di ricerca:

  • Un filtro di ricerca che restringe la ricerca a un tipo specifico di oggetto
  • Un ambito di oggetti in cui ricercare
  • Un elenco di attributi da restituire con l'oggetto

Quando si configura questa ricerca, è necessario decidere il tipo di oggetto da ricercare, quindi creare un filtro di ricerca per quel tipo di oggetto. L'oggetto DirectorySearcher fornisce una proprietà Filter che richiede una stringa che utilizza la sintassi LDAP come stringa di filtro.

Quindi è necessario decidere se l'ambito del filtro deve essere alla base del nodo a cui è associata l'applicazione, al livello immediatamente inferiore o all'intera sottostruttura ad albero. La proprietà SearchScope viene utilizzata per impostare questo parametro. Infine è necessario decidere quali nomi e valori delle proprietà devono essere restituiti con l'oggetto.

Facoltativamente è possibile utilizzare un oggetto DirectorySynchronization per eseguire una ricerca di sincronizzazione della directory, che consente all'applicazione di eseguire una ricerca, scorrere tutti i risultati, eseguire altre funzioni non correlate alla ricerca o diventare temporaneamente inattiva. L'applicazione quindi ripeterà la stessa ricerca per recuperare eventuali nuovi risultati. In questo modo un'applicazione può tenere traccia di tutti gli aggiornamenti a Servizi di dominio Active Directory che soddisfano i criteri specificati nella ricerca.

Nella figura seguente viene illustrata una ricerca che esegue l'associazione al contenitore Sales.

Esempio di ricerca

DirectorySearcher restituisce un singolo risultato e le relative proprietà in un oggetto SearchResult. Gli insiemi di risultati vengono restituiti come SearchResultCollection, che è un contenitore di tutti gli oggetti SearchResult restituiti dalla ricerca.

DirectorySearcher fornisce i due metodi seguenti per eseguire la ricerca:

  • FindOne restituisce un singolo elemento.
  • FindAll restituisce un insieme di elementi.

Per ulteriori informazioni e una procedura per creare un'applicazione di ricerca di base, vedere l'argomento relativo alla ricerca in gerarchie di Active Directory in MSDN Library all'indirizzo https://go.microsoft.com/fwlink/?LinkID=27252.

Vedere anche

Riferimenti

System.DirectoryServices
DirectoryEntry
DirectorySearcher
SearchScope
DirectorySynchronization

Concetti

Introduzione a System.DirectoryServices

Send comments about this topic to Microsoft.

Copyright © 2007 Microsoft Corporation. Tutti i diritti riservati.