#705 - Enumerare gli utenti in Active Directory

Sempre più spesso gli utenti in Active Directory vengono utilizzati come sistema per l'autenticazione nell'ambito di applicazioni web, specie intranet.
Attraverso questo semplice script è possibile enumerare tutti gli utenti presenti in un particolare dominio (nello specifico, bochicchio.local) sfruttando un utente ad hoc per le interrogazioni.

using System.DirectoryServices;

private string[] GetUsers()
{
  ArrayList users = new ArrayList;

  // percorso AD, username e password per interrogare

  string path = "LDAP://server2003/DC=bochicchio,DC=local";
  string localUsername = "ADwebuser";
  string localPassword = "adTest";

  // effettuo una ricerca in ActiveDirectory

  DirectorySearcher search = new DirectorySearcher(new DirectoryEntry(path, localUsername, localPassword));
  search.Filter = "(&(objectclass=user)(objectCategory=person))"; // solo persone

 
  // proprietà richieste

  search.PropertiesToLoad.Add("samaccountname");

  search.CacheResults = true;
  search.SizeLimit = 1000; // massimo 1000 utenti


  // cerco gli utenti

  SearchResultCollection results = search.FindAll();
  foreach(SearchResult result in results)
  {
    // aggiugno lo username alla collezione

    users.Add(result.Properties["samaccountname"][0].ToString());
  }
  search.Dispose();

  // restituisco un array di stringhe

  return (string[])users.ToArray(typeof(String);
}

Il codice restituisce un array di stringhe ed è l'ideale per costruire facilmente una lista degli utenti che appartengono ad un dominio.


Approfondimenti

Commenti

Esprimi il tuo giudizio su questo script:

Per procedere devi essere autenticato.

igio80 scrive:
#705 - Enumerare gli utenti in Active Directory

Questo codice è uno script che gira sotto ASP.NET giusto?Ma per far girare una robbe del genere non devo farla partire server side? Io non riesco a ...
mercoledì 2 novembre 2005 | 5 risposte
dueggi scrive:
#705 - Enumerare gli utenti in Active Directory

Ovviamente l'utente "ADwebuser" deve essere un membro del dominio. E se questi è un utente di dominio che non può fare login (es. di servizio)?Grazie.
lunedì 9 maggio 2005 | 4 risposte

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.




IN EVIDENZA
MISC