Мне нужно заполнить свой элемент управления автозаполнением, подобный PeopleEditor, на основе блестящего ASPTokenInput всеми людьми из моего домена AD. Отражение PeopleEditor показывает настоящий беспорядок в их поисковой системе Active Directory, и все потенциально полезные классы являются внутренними.
Мой метод тестирования работает нормально, но мне нужно, чтобы ВСЕ пользователи из AD (не на сайтах sharepoint) заполняли мой список:
public string GetUsers(string filter)
{
var spWeb = SPContext.Current.Web;
SPUserCollection allusers = spWeb.AllUsers;
List<SPUser> users = allusers.Cast<SPUser>().ToList();
var query = from spUser in users.Select(usr => new {id = usr.ID, name = usr.Name})
.Where(p => p.name.IndexOf(filter, StringComparison.InvariantCultureIgnoreCase) >= 0)
select new {id = spUser.id.ToString(), spUser.name};
return new JavaScriptSerializer().Serialize(query);
}
Как я могу запросить активный каталог таким образом? Можно ли получить все настройки подключения к AD из самого sharepoint? Мне нужен только идентификатор и имя пользователя, чтобы заполнить мой раскрывающийся список. Преобразование этого в SPUserCollection - еще одно важное дело.
Было бы здорово использовать некоторые встроенные методы SP, например:
[SubsetCallableExcludeMember(SubsetCallableExcludeMemberType.UnsupportedSPType)]
public static IList<SPPrincipalInfo> SearchWindowsPrincipals(SPWebApplication webApp, string input, SPPrincipalType scopes, int maxCount, out bool reachMaxCount)
SPUtility.SearchWindowsPrincipals
? - person Stefan   schedule 25.10.2011