DC è il vostro dominio. Se vuoi connetterti al dominio example.com che sono le tue dc: DC = example, DC = com
In realtà non hai bisogno di alcun nome host o indirizzo IP del tuo controller di dominio (Ce ne potrebbero essere molti) .
Solo immagini ti stai collegando al dominio stesso. Quindi per la connessione al dominio example.com puoi semplicemente scrivere
DirectoryEntry directoryEntry = new DirectoryEntry("LDAP://example.com");
E il gioco è fatto.
È inoltre possibile specificare un utente e una password utilizzata per la connessione:
DirectoryEntry directoryEntry = new DirectoryEntry("LDAP://example.com", "username", "password");
anche essere sicuri di scrivere sempre LDAP in maiuscolo. Ho avuto qualche problema e strane eccezioni fino a quando ho letto da qualche parte che dovrei provare a scriverlo in maiuscolo e questo ha risolto i miei problemi.
La proprietà directoryEntry.Path
consente di approfondire il proprio dominio. Quindi, se si desidera cercare un utente in un'unità organizzativa specifica (Unità organizzativa), è possibile impostarlo lì.
DirectoryEntry directoryEntry = new DirectoryEntry("LDAP://example.com");
directoryEntry.Path = "LDAP://OU=Specific Users,OU=All Users,OU=Users,DC=example,DC=com";
Ciò corrisponde la seguente gerarchia AD:
Basta scrivere la gerarchia dal più profondo al più alto.
Now you can do plenty of things
Per esempio ricercare un utente in base al nome account e ottenere il suo cognome:
DirectoryEntry directoryEntry = new DirectoryEntry("LDAP://example.com");
DirectorySearcher searcher = new DirectorySearcher(directoryEntry) {
PageSize = int.MaxValue,
Filter = "(&(objectCategory=person)(objectClass=user)(sAMAccountName=AnAccountName))"
};
searcher.PropertiesToLoad.Add("sn");
var result = searcher.FindOne();
if (result == null) {
return; // Or whatever you need to do in this case
}
string surname;
if (result.Properties.Contains("sn")) {
surname = result.Properties["sn"][0].ToString();
}
ou = unità organizzativa, dc = componente di dominio – paul