Я пытаюсь получить всех пользователей, принадлежащих к группе в Active Directory. Я хочу отобразить результат в виде раскрывающегося списка для выбора пользователями сайта. Это то, что я до сих пор:
public IEnumerable<KeyValuePair<string, string>> GetAllMembers(string group)
{
var domainContext = new PrincipalContext(ContextType.Domain);
var group = GroupPrincipal.FindByIdentity(domainContext, group);
return from principal in @group.Members select new KeyValuePair<string, string>(/* need to fill in key and value */);
}
Проблема, с которой я столкнулся, заключается в том, что я разрабатываю это вне активного каталога, поэтому пока не могу его протестировать (длинная история не спрашивает). Я хочу максимально увеличить свои шансы на успех при развертывании этого в среде тестирования.
Мой вопрос: если я хочу, чтобы пара ключ-значение содержала имя пользователя для входа (ключ, например: "DOMAIN\darkoz"
) и настоящее имя пользователя (значение, например: "Darko Z"
), как мне их получить? Principal
объект имеет как минимум 5 свойств со словом Name
, поэтому я не уверен, что есть что.
Бонусный вопрос: это общепринятый способ достижения моей цели? Я понимаю, что это очень простая проблема, но с моим недостатком знаний Active Directory я не удивлюсь, если бы был лучший способ сделать это. Будет ли это работать на учетной записи, которая не является администратором?