Мне нужно иметь возможность получить список групп, в которых находится пользователь, но мне нужно иметь одно / некоторые / все следующие свойства видимыми:
- DistinguishedName
- имя
- сп
- SamAccountName
То, что у меня сейчас есть, возвращает какое-то имя, но не любое из вышеперечисленных (имена кажутся близкими, но не все соответствуют друг другу. Вот что я использую:
ArrayList groups = new ArrayList();
foreach (System.Security.Principal.IdentityReference group in System.Web.HttpContext.Current.Request.LogonUserIdentity.Groups)
groups.Add(group.Translate(typeof(System.Security.Principal.NTAccount)));
Как я уже сказал, вышеприведенное работает, но не даст мне правильные имена, которые мне нужны для моей программы (те, которые указаны выше). Мне нужно, чтобы это соответствовало списку, который я получаю при вызове всех групп в моем домене:
DirectoryEntry dirEnt = new DirectoryEntry("LDAP://my_domain_controller");
DirectorySearcher srch = new DirectorySearcher(dirEnt);
srch.Filter = "(objectClass=Group)";
var results = srch.FindAll();