类似于SiteUserInfoList,但适用于所有sharepoint用户
我正在尝试在sharepoint 2013提供商托管的应用程序中构建一个类似人员选取器的工具。最初,我使用的是类似于SiteUserInfoList,但适用于所有sharepoint用户,sharepoint,sharepoint-2013,Sharepoint,Sharepoint 2013,我正在尝试在sharepoint 2013提供商托管的应用程序中构建一个类似人员选取器的工具。最初,我使用的是实用程序.ResolvePrincipal,它允许我访问sharepoint中的任何用户,但一次只能给我一个用户(这不是我想要的)。然后,我尝试使用实用程序.SearchPrincipals,但从未得到任何结果。因此,我尝试使用Web.SiteUserInfoList,但这只允许我访问我网站的用户,而不是sharepoint的所有用户。我是否可以使用类似于SiteUserInfoList
实用程序.ResolvePrincipal
,它允许我访问sharepoint中的任何用户,但一次只能给我一个用户(这不是我想要的)。然后,我尝试使用实用程序.SearchPrincipals
,但从未得到任何结果。因此,我尝试使用Web.SiteUserInfoList
,但这只允许我访问我网站的用户,而不是sharepoint的所有用户。我是否可以使用类似于SiteUserInfoList
的东西,但它会返回sharepoint中的任何用户,而不仅仅是我的站点?以下是我在使用SiteUserInfoList
时得到的信息:
var camlQuery = new CamlQuery();
camlQuery.ViewXml = @"<View>
<Query>
<Where>
<Contains>
<FieldRef Name='Title'/>
<Value Type='Text'>" + nameStart + @"</Value>
</Contains>
</Where>
</Query>
</View>";
var users = _clientContext.Web.SiteUserInfoList.GetItems(camlQuery);
_clientContext.Load(users, u => u.Include(item => item["Title"], item => item["Name"], item => item.DisplayName));
_clientContext.ExecuteQuery();
var camlQuery=new camlQuery();
camlQuery.ViewXml=@”
“+nameStart+@”
";
var users=\u clientContext.Web.SiteUserInfoList.GetItems(camlQuery);
_Load(用户,u=>u.Include(item=>item[“Title”]、item=>item[“Name”]、item=>item.DisplayName));
_clientContext.ExecuteQuery();
您可以尝试使用REST搜索您的用户
您的URL如下所示:
var url = string.Format("http://yoursite/_api/search/query?querytext='AccountName:{0}*'&sourceid='B09A7990-05EA-4AF9-81EF-EDFAB16C4E31'&selectproperties='PictureURL,AccountName'", nameStart);
(sourceid='B09A7990-05EA-4AF9-81EF-EDFAB16C4E31'指向内容类:STSPeople)以下是我最后实际做的事情: