您的位置:首页 > 移动开发

使用Host-Provider方式开发的App,无法获取SharePoint Online中的item

2017-08-03 15:35 393 查看
微软官方使用CAML读取Host Web上的list中的item的示例代码请参见:点击打开链接

我使用的代码为:

List selectedList = lists.GetByTitle("TestList");
clientContext.Load<List>(selectedList);
clientContext.ExecuteQuery();
CamlQuery camlQuery = new CamlQuery();
camlQuery.ViewXml = @"<View><Query><Where><In><FieldRef Name='ID' /></In><Values><Value Type="Counter">1</Value></Values></Where></Query></View>";
Microsoft.SharePoint.Client.ListItemCollection listItems = selectedList.GetItems(camlQuery);
clientContext.Load<Microsoft.SharePoint.Client.ListItemCollection>(listItems);
clientContext.ExecuteQuery();
//执行以上代码之后,变量listItems一直是空的。


这段代码是参照示例代码编写,运行良好,但是突然读取不到host web中list的item了,读取的结果一直是空的。

查了半天代码,确定代码没有问题,最后才发现是App的权限不够,我之前赋予App的权限是Host web里List的Write权限。正确的权限设置是在AppManifest.xml中,Permissions标签页下将App在List上赋予Full Control的权限。如果不是Full Control,无法读取list中的item。这个变化应该是来自于SharePoint Online的权限更改,将读取host web中的item需要的权限提高导致的。

SharePoint Online以及整个Office 365一直处于不断的升级中,像这样的变化对app的影响还是很大的。从这里可以得到的一个经验是,为App赋予尽可能高的权限。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐