Frage

Ich bin auf der Suche nach einer Methode, den Strom in Benutzer voll aktiv Direcory LDAP-Pfad angemeldet zu erhalten. z.B.

LDAP://CN=john.smith,OU=UK,OU=Sales,DC=Company,DC=local
War es hilfreich?

Lösung

Abfrage des LDAP-Verzeichnis (zum Beispiel das AD) mit diesem Filter:

(&(objectCategory=user)(sAMAccountName=<user-logon-name-here>))

Der DN des Objekts zurückgegeben wird, ist das, was Sie suchen.

So etwas wie folgt aus:

DirectorySearcher ds = new DirectorySearcher();
string userName = WindowsIdentity.GetCurrent().Name;
string userFilter = "(&(objectCategory=user)(sAMAccountName={0}))";

ds.SearchScope = SearchScope.Subtree;
ds.PropertiesToLoad.Add("distinguishedName");
ds.PageSize = 1;
ds.ServerPageTimeLimit = TimeSpan.FromSeconds(2);
ds.Filter = string.Format(userFilter, userName);

SearchResult sr = ds.FindOne();
// now do something with sr.Properties["distinguishedName"][0]
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top