AD ドメインのすべての人を、鮮やかなASPTokenInputに基づいてオートコンプリート PeopleEditor のようなコントロールに入力する必要があります。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);
}
このように Active Directory を照会するにはどうすればよいですか? 共有ポイント自体からすべての AD 接続設定を取得することは可能ですか? ドロップダウン リストを埋めるには、ID とユーザー名だけが必要です。これを SPUserCollection に変換することは、もう 1 つの大きな問題です。
次のような組み込みの SP メソッドを使用すると便利です。
[SubsetCallableExcludeMember(SubsetCallableExcludeMemberType.UnsupportedSPType)]
public static IList<SPPrincipalInfo> SearchWindowsPrincipals(SPWebApplication webApp, string input, SPPrincipalType scopes, int maxCount, out bool reachMaxCount)