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.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Short-circuiting della Pipeline in ASP.NET Core
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Usare ASP.NET Core dev tunnels per testare le applicazioni su internet
Load test di ASP.NET Core con k6
Cache policy su route groups di Minimal API in ASP.NET Core 7
Implementare il throttling in ASP.NET Core
Catturare la telemetria degli eventi di output cache in ASP.NET Core
Personalizzare l'errore del rate limiting middleware in ASP.NET Core
Taggare la output cache in base al routing in ASP.NET Core