Recherche dans l'annuaire
La recherche constitue la tâche la plus courante dans un annuaire. L'objet DirectoryEntry permet d'effectuer des recherches simples, telles que la recherche d'un objet d'annuaire unique requis pour une opération simple de type liaison avec le domaine, mais il ne permet pas d'effectuer des recherches avancées ni d'obtenir un grand nombre de résultats.
Pour ajouter une opération de recherche avancée à votre application, utilisez l'objet DirectorySearcher. L'objet DirectorySearcher fournit un ensemble de propriétés et de méthodes qui permettent de sélectionner plusieurs critères de recherche, tels qu'une zone de recherche, des filtres, des chaînes génériques, la taille de la page pour les jeux de résultats et le tri.
Cette section comprend les rubriques suivantes :
- Taille de la recherche et taille de la page
- Obtention des résultats de la recherche
- Définition de la zone de recherche
- Définition de filtres de recherche
- Options de recherche supplémentaires
- Exemple DirectorySearcher
Avant d'effectuer une recherche, vous devez bien connaître l'objet DirectorySearcher et les concepts de recherche dans l'annuaire. Si vous avez déjà utilisé ADSI, vous avez peut-être utilisé l'interface IDirectorySearch COM. L'objet DirectorySearcher est un wrapper pour IDirectorySearch. Pour plus d'informations sur cette interface, voir la rubrique IDirectorySearch dans MSDN Library à l'adresse https://go.microsoft.com/fwlink/?LinkID=27252.
Pour effectuer une recherche, votre application doit tout d'abord établir une liaison avec un point racine de l'annuaire. Pour optimiser les performances, sélectionnez un point qui fournira le plus petit jeu de résultats. Configurez DirectorySearcher pour fournir les paramètres suivants à votre recherche :
- un filtre de recherche qui limite la recherche à un type d'objet spécifique ;
- un ensemble d'objets à rechercher ;
- une liste d'attributs à retourner avec l'objet.
Lorsque vous configurez cette recherche, vous devez décider du type d'objet à rechercher, puis créer un filtre de recherche pour ce type d'objet. L'objet DirectorySearcher fournit une propriété Filter qui nécessite une chaîne utilisant la syntaxe LDAP comme chaîne de filtrage.
Vous devez ensuite décider si la portée du filtre doit se situer à la base du nœud auquel votre application est liée, sur un niveau ou sur la sous-arborescence. La propriété SearchScope permet de définir ce paramètre. Vous devez enfin décider des noms et des valeurs de propriété à retourner avec l'objet.
Vous pouvez également utiliser un objet DirectorySynchronization pour effectuer une recherche de synchronisation d'annuaires, ce qui permet à l'application d'effectuer une recherche, de parcourir tous les résultats, d'exécuter d'autres fonctions qui ne sont pas associées à la recherche ou de devenir inactive pour un certain temps. L'application effectuera plus tard la même recherche pour obtenir d'éventuels nouveaux résultats pour cette recherche. Une application peut ainsi conserver la trace de toutes les mises à jour des services de domaine Active Directory qui correspondent aux critères spécifiés dans la recherche.
Le diagramme suivant illustre une recherche liée au conteneur Sales.
DirectorySearcher retourne un seul résultat et ses propriétés dans un objet SearchResult. Les jeux de résultats sont retournés comme SearchResultCollection, qui est un conteneur pour tous les objets SearchResult retournés par la recherche.
DirectorySearcher propose les deux méthodes suivantes pour effectuer la recherche :
Pour plus d'informations et connaître la procédure à suivre pour créer une application de recherche de base, consultez la rubrique sur la recherche dans des hiérarchies Active Directory dans MSDN Library à l'adresse https://go.microsoft.com/fwlink/?LinkID=27252 (page pouvant être en anglais).
Voir aussi
Référence
System.DirectoryServices
DirectoryEntry
DirectorySearcher
SearchScope
DirectorySynchronization
Concepts
Mise en route dans System.DirectoryServices
Send comments about this topic to Microsoft.
Copyright © 2007 par Microsoft Corporation. Tous droits réservés.