我有以下情况: 我的加载项允许写帖子。任何用户都可以"喜欢"那个帖子。喜欢的东西被保存到列表中。
当然,加载项需要将该条目写入列表的权限。但是(恕我直言)我不能在SharePoint托管的加载项中使用任何提升的权限,用户需要拥有该权限,对吗?
所以:我如何保护我的列表,用户不必进入列表并自行修改价值并增加"喜欢"例如?
(评论:这不是真实世界的情况。我知道有更好的方法可以使用社交网络功能。只是想打破我更复杂的应用程序)
答案 0 :(得分:0)
我会让每个用户都喜欢'单击在项级权限设置为的列表中创建新项目:
创建项目并编辑用户创建的项目
这样即使他们以某种方式进入后端并开始使用列表进行修改,他们也只能更改他们创建的项目。
您只需要根据应用的规模管理列表的增长方式。
答案 1 :(得分:0)
SharePoint托管的加载项无法使用仅限应用程序策略,因为提供程序托管的加载项可以使用具有用户拥有的更多权限的加载项上下文。 SharePoint托管的加载项完全在当前用户的上下文中运行。
我看到了3种可能的解决方案:
答案 2 :(得分:0)
你是对的。用户需要“Contribute”权限才能完成您所说的内容。就个人而言,这就是我要做的......
1)确保我要保护的列表名称不明确。请记住,UI与主机Web中的不同(即站点内容)。用户永远不必知道这些数据存储在哪个列表中。更进一步,列表之间的联系可以通过诸如GUID之类的东西来实现,而不是像“标题”那样明显的东西,这使得确定数据的确切关联变得更加困难。
https://sharepoint.stackexchange.com/questions/96360/hide-list-from-browser-site-lists-lisname
2)删除敏感列表中的所有视图。这会阻止浏览器中的导航。这些列表将通过REST或CSOM进行修改,因此您不需要它们。
3)我没有测试过这种可能的解决方案,但它可能有效。你应该能够配置edit.aspx(或创建你自己的自定义),这样即使用户以某种方式使它超过了步骤1和2,也没有可用的字段可以编辑......
这些方法不以任何方式操纵列表的权限,最后,所有这些都是通过默默无闻的权限。