Posso recuperare il nome di dominio e il nome utente con la ricerca Directoy attiva utilizzando C #

voti
0

Tutti,

Ho un grande elenco di messaggi di posta elettronica degli utenti, e ho bisogno di ottenere il nome utente e dominio a ognuno di loro.

La mia organizzazione contiene un sacco di domini e dei nostri utenti accedono al loro nomi utente della macchina usando che sono diversi dai loro indirizzi e-mail.

Si prega di avvisare se siamo in grado di scrivere un programma di utilità C # che può cercare AD utilizzando l'e-mail di ogni utente, o se siamo in grado di farlo in un modo più semplice.

È pubblicato 14/07/2009 alle 14:24
fonte dall'utente
In altre lingue...                            


2 risposte

voti
1

Se i dati che è tutto in AD, allora si può probabilmente ricerca utilizzando LDAP. Nel qual caso, mi sento di raccomandare DirectorySearcher dal momento che si sta utilizzando .NET.

Risposto il 14/07/2009 a 14:27
fonte dall'utente

voti
1

Sei su .NET 3.5? Se è così - AD ha grandi nuove funzionalità di .NET 3.5 - leggi questo articolo per titolari Managing Directory di sicurezza in .NET 3.5 di Ethan Wilanski e Joe Kaplan.

Una delle grandi novità è una classe "PrincipalSearcher", che dovrebbe semplificare notevolmente la ricerca degli utenti e / o gruppi in AD.

Se non è possibile utilizzare .NET 3.5, utilizzare un DirectorySearcher e specificare l'indirizzo di posta elettronica come criterio di ricerca, e recuperare il nome utente (quale C'è un gazillion diversi nomi utente?!):

DirectoryEntry deRoot = new DirectoryEntry("LDAP://cn=Users,dc=yourdomain,dc=com");

DirectorySearcher deSrch = new DirectorySearcher(deRoot);

deSrch.SearchScope = SearchScope.Subtree;

deSrch.PropertiesToLoad.Add("sn");  // surname = family name
deSrch.PropertiesToLoad.Add("givenName");
deSrch.PropertiesToLoad.Add("samAccountName");

deSrch.Filter = string.Format("(&(objectCategory=person)(mail={0}))", emailAddress);

foreach(SearchResult sr in deSrch.FindAll())
{
  // you can access the properties of the search result
  if(sr.Properties["sn"] != null)
  {
     string surname = sr.Properties["sn"][0].ToString();
  }
  // and so on, for all the other properties, too
}

Spero che questo ti aiuti!

Marc

Risposto il 14/07/2009 a 16:42
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more