Возможно, вы могли бы использовать это:
string username = "<username>";
DirectoryEntry de = new DirectoryEntry(
"LDAP://" + ConfigurationManager.AppSettings["ADDomain"],
ConfigurationManager.AppSettings["ADUsername"],
ConfigurationManager.AppSettings["ADPassword"]);
DirectorySearcher ds = new DirectorySearcher(de);
ds.Filter = string.Format("samaccountname={0}",
(username.Split('\\').Length > 1) ? username.Split('\\')[1] : username);
SearchResult result = ds.FindOne();
if (result == null)
throw new ArgumentException(
string.Format("Username '{0}' does not exist in the active directory", username), "username");
Затем вы можете использовать коллекцию Properties объекта SearchResult для получения информации от объекта пользователя (например, result.Properties ["samaccountname"]). Вот некоторые полезные ключи:
- Элемент списка samaccountname (имя пользователя Windows)
- Элемент списка displayName (Полное имя)
- Элемент списка phoneNumber
- Элемент списка рассылки (адрес электронной почты)
- Отдел элемента списка (к которому относится пользователь)