Получить информацию о пользователе из AD - C#
Формулировка задачи:
Доброго времени суток, коллеги!
Подскажите, пожалуйста как вытащить информацию о пользователе из Active Directory в List<User>?
Информация нужна следующая:
Я понимаю, что конкретная структура AD может быть различной, но всё же буду очень благодарен за конкретный пример кода из вашей практики.
public class User { /// <summary> /// Active Directory Name /// </summary> public string ADName { get; set; } /// <summary> /// Имя пользователя (загружается из AD) /// </summary> public string I { get; set; } /// <summary> /// Фамилия пользователя (загружается из AD) /// </summary> public string F { get; set; } /// <summary> /// Выводимое имя (загружается из AD) /// </summary> public string DisplayName { get; set; } /// <summary> /// EMail пользователя (загружается из AD) /// </summary> public string EMail { get; set; } /// <summary> /// Номер телефона пользователя (загружается из AD) /// </summary> public string NumberFull { get; set; } /// <summary> /// Мобильный номер пользователя (загружается из AD) /// </summary> public string MobileNumber { get; set; } }
Решение задачи: «Получить информацию о пользователе из AD»
textual
Листинг программы
public List<main_OrgStruct> ADOrgStructSync() { List<main_OrgStruct> res = new List<main_OrgStruct>(); DirectoryEntry dir = new DirectoryEntry(" LDAP://intra.vostok.ru/OU=vostok_users,DC=intra,DC=vostok,DC=ru"); DirectorySearcher search = new DirectorySearcher(dir); search.Filter = "(&(objectCategory=person)(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2))"; search.SearchScope = SearchScope.Subtree; try { foreach (SearchResult result in search.FindAll()) { var entry = result.GetDirectoryEntry(); res.Add(new main_OrgStruct() { ADName = entry.Properties["cn"].Value != null ? entry.Properties["cn"].Value.ToString() : "NoN", DisplayName = entry.Properties["displayName"].Value != null ? entry.Properties["displayName"].Value.ToString() : "NoN", I = entry.Properties["givenName"].Value != null ? entry.Properties["givenName"].Value.ToString() : "NoN", F = entry.Properties["sn"].Value != null ? entry.Properties["sn"].Value.ToString() : "NoN", EMail = entry.Properties["mail"].Value != null ? entry.Properties["mail"].Value.ToString() : "NoN", MobileNumber = entry.Properties["mobile"].Value != null ? long.Parse(entry.Properties["mobile"].Value.ToString()) : 0, NumberFull = entry.Properties["telephoneNumber"].Value != null ? long.Parse(entry.Properties["telephoneNumber"].Value.ToString()) : 0, }); } } catch (Exception e) { var ee = e.Message; } return res; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д