SharePoint 2010 匿名用户调用Client Object Model访问列表项
2013-11-14 20:25
525 查看
最近有个小需求,在门户首页上加个通知公告的版块,新闻来源是列表项,需要有垂直滚动的效果。
第一个想法就是通过SharePoint的Client Object Model获取列表数据再加上JQuery来实现,也懒得自己从头写了,直接网上找了一篇通过Client Object Model 取列表项的文章和一篇通过JQuery实现滚动新闻效果的文章,把2处代码揉在一起改吧改吧就好。
开发调试的时候是用管理员身份登录SharePoint网站,一切顺利,测试的时候用匿名用户访问,直接报js错误,提示"GetItems“方法取不出,取列表项的脚步片段如下:
var listName='通知公告';
var ctx = new SP.ClientContext();
var caml = "<View><Query><OrderBy><FieldRef Name='Created' Ascending='False' /></OrderBy></Query><RowLimit>10</RowLimit></View>";
var list = ctx.get_web().get_lists().getByTitle(listName);
var query = new SP.CamlQuery();
query.set_viewXml(caml);
var listItems = list.getItems(query);
ctx.load(listItems, "Include("Created,Title,ID)");
有权限用户能取,匿名用户不能取,但是匿名用户明明有读列表项的权限,微软肯定又做了什么手脚,一顿google,找到下面的解决方案:
$webapp = Get-SPWebApplication http://site
$webapp.ClientCallableSettings.AnonymousRestrictedTypes.Remove([microsoft.sharepoint.splist], "GetItems")
$webapp.Update()
在服务器上运行上面powershell脚步,在客户端刷新页面,匿名用户也能正常读取列表数据了!
第一个想法就是通过SharePoint的Client Object Model获取列表数据再加上JQuery来实现,也懒得自己从头写了,直接网上找了一篇通过Client Object Model 取列表项的文章和一篇通过JQuery实现滚动新闻效果的文章,把2处代码揉在一起改吧改吧就好。
开发调试的时候是用管理员身份登录SharePoint网站,一切顺利,测试的时候用匿名用户访问,直接报js错误,提示"GetItems“方法取不出,取列表项的脚步片段如下:
var listName='通知公告';
var ctx = new SP.ClientContext();
var caml = "<View><Query><OrderBy><FieldRef Name='Created' Ascending='False' /></OrderBy></Query><RowLimit>10</RowLimit></View>";
var list = ctx.get_web().get_lists().getByTitle(listName);
var query = new SP.CamlQuery();
query.set_viewXml(caml);
var listItems = list.getItems(query);
ctx.load(listItems, "Include("Created,Title,ID)");
有权限用户能取,匿名用户不能取,但是匿名用户明明有读列表项的权限,微软肯定又做了什么手脚,一顿google,找到下面的解决方案:
$webapp = Get-SPWebApplication http://site
$webapp.ClientCallableSettings.AnonymousRestrictedTypes.Remove([microsoft.sharepoint.splist], "GetItems")
$webapp.Update()
在服务器上运行上面powershell脚步,在客户端刷新页面,匿名用户也能正常读取列表数据了!
相关文章推荐
- 如何开启匿名访问SharePoint 2010里的Client Object Model
- 如何开启匿名访问SharePoint 2010里的Client Object Model
- 如何开启匿名访问SharePoint 2010里的Client Object Model
- 使用 SharePoint 2010 Client Object Model 修改用户Email(邮箱) 地址
- SharePoint 2010 Client Object Model-Client API
- 搜罗备忘: SharePoint 2013/2010 JavaScript client model 对列表和站点的基本操作
- [转]SharePoint 2010: Client Object Model for JavaScript (ECMAScript)(使用客户端对象模型)
- 如何开启匿名访问SharePoint 2010里的Client Object Model
- [SharePoint 2010] Client Object Model 跨时区查询list item的方法
- SharePoint 2010 JavaScript Object Model获取列表下所有文件夹名称
- Sharepoint 2010:基于当前用户判断访问列表项目的权限 --Determine access to SPListItem based on a Current User
- 启用 SharePoint 2010 的匿名用户访问支持
- Sharepoint 2010 client object model
- SharePoint 2010 - Client Object Model - ECMAScript
- 使用ClientObjectModel访问SharePoint数据
- SharePoint 2010 Client Object Model - JavaScript(ECMAScript)
- sharepoint 2010 自定义列表数据的增删改查常用操作 server object model
- 在C#开发中如何使用Client Object Model客户端代码获得SharePoint 网站、列表的权限情况
- SharePoint【用户访问控制】-- 03. SharePoint 2010 列表项级权限、草稿项安全设置
- SharePoint 2010新特性使用Client Object Model在客户端开发