Comment puis-je obtenir l'UO de l'utilisateur connecté en C #?
Question
Je cherche une méthode pour obtenir le chemin d'accès complet LDAP Active Direcory de l'utilisateur actuellement connecté. par exemple.
LDAP://CN=john.smith,OU=UK,OU=Sales,DC=Company,DC=local
La solution
Interrogez l'annuaire LDAP (par exemple, l'AD) avec ce filtre:
(&(objectCategory=user)(sAMAccountName=<user-logon-name-here>))
Le nom distinctif de l'objet renvoyé est ce que vous recherchez.
Quelque chose comme ça:
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]
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow