Tôi phải điền điều khiển giống như PeopleEditor tự động hoàn thành dựa trên brililant ASPTokenInput với tất cả mọi người từ miền AD của tôi. Phản ánh PeopleEditor cho thấy một mớ hỗn độn thực sự trong công cụ tìm kiếm Active Directory của họ và tất cả các lớp có khả năng hữu ích là nội bộ.Nhận tất cả người dùng từ thư mục hoạt động để chia sẻ
phương pháp thử nghiệm của tôi hoạt động tốt, nhưng tôi cần phải nhận được TẤT CẢ người dùng từ AD (không dùng thêm những chỗ) để cư trú danh sách của tôi:
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);
}
Làm thế nào tôi có thể truy vấn hoạt động thư mục như thế này? Có thể truy xuất tất cả các cài đặt kết nối AD từ chính SharePoint không? Tôi chỉ cần id và tên người dùng để điền vào danh sách thả xuống của tôi Việc chuyển đổi thành SPUserCollection là một vấn đề lớn khác.
Nó sẽ là tuyệt vời để sử dụng một số được xây dựng trong phương pháp SP như thế này:
[SubsetCallableExcludeMember(SubsetCallableExcludeMemberType.UnsupportedSPType)]
public static IList<SPPrincipalInfo> SearchWindowsPrincipals(SPWebApplication webApp, string input, SPPrincipalType scopes, int maxCount, out bool reachMaxCount)
Tại sao bạn không sử dụng phương pháp 'SPUtility.SearchWindowsPrincipals'? – Stefan