Я должен заполнить свой элемент управления 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)