Establecer el ámbito de la búsqueda

Para aumentar el rendimiento de la búsqueda, limite el ámbito de la búsqueda a un solo objeto o subconjunto de objetos. Para esta tarea, DirectorySearcher proporciona la propiedad SearchScope.

El ámbito de la búsqueda se puede establecer en uno de estos tres valores:

  • Base. Busca el objeto enlazado y sólo devuelve el objeto que coincida con el criterio de búsqueda. Por ejemplo, si está enlazado con el dominio, lo buscará todo en ese dominio y devolverá el objeto enlazado.
  • OneLevel. Busca todos los objetos incluidos en el mismo nivel que el objeto enlazado. Por ejemplo, si está enlazado con un grupo, buscará todos los grupos u otros objetos que estén en el mismo nivel que ese grupo.
  • Subtree. Busca todos los objetos incluidos en el subárbol del objeto enlazado, incluido el objeto base. Por ejemplo, si está enlazado con un servidor, buscará todos los objetos de la jerarquía situados en el mismo nivel o en ese servidor. Éste es el valor predeterminado. Si realiza una búsqueda de sincronización de directorio con un objeto DirectorySynchronization, la aplicación está obligada a especificar el ámbito Subtree.

El siguiente diagrama ilustra cómo cada uno de estos ámbitos se ajusta a la jerarquía del dominio.

El siguiente ejemplo de código de C# muestra cómo utilizar la propiedad SearchScope para buscar en un subárbol.

DirectoryEntry entry = new DirectoryEntry("LDAP://CN=users,DC=fabrikam,DC=com");
DirectorySearcher mySearcher = new DirectorySearcher(entry);
mySearcher.SearchScope = SearchScope.Subtree;
mySearcher.Filter = "(&(objectClass=user)(anr=test*))";
SearchResultCollection ResEnt = mySearcher.FindAll();
{
    // Handle results.
}
// Handle exceptions.

Consulte también

Referencia

System.DirectoryServices
DirectorySearcher
SearchScope
DirectorySynchronization

Conceptos

Buscar en el directorio

Send comments about this topic to Microsoft.

Copyright © 2007 Microsoft Corporation. Reservados todos los derechos.