3

我正在尝试在 sharepoint 2013 提供商托管的应用程序中构建类似人员选择器的工具。最初,我使用的是Utility.ResolvePrincipal,它可以让我访问 sharepoint 中的任何用户,但它一次只能给我一个用户(这不是我想要的)。然后,我尝试使用Utility.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();
4

1 回答 1

0

您可以尝试使用 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)

于 2014-01-13T12:35:29.183 回答