SharePoint 托管应用程序 2013 - 列出应用程序级别的权限

标签 sharepoint sharepoint-2013 sharepoint-apps

我在谷歌上搜索了很长一段时间,但找不到答案。问题如下:

Is it possible to manage users permissions of the lists that are deployed to the app web?

我们有很多可能性在主机网站(父网站)上执行此操作,我们可以在其中为任何用户定义权限。在应用程序Web(SharePoint应用程序域)上,我们可以直接访问所有部署的列表,并且无法为某些特定用户设置权限。我有不同的用户组,我希望他们对部署在应用程序网络上的列表具有不同的权限。我怎样才能做到这一点,或者是否有可能?

如果没有,当任何应用用户都可以直接访问这些列表并更改数据时,这些列表可以用来做什么?

最佳答案

I will use the add-ins terminology instead of apps because that's what Microsoft calls them now.

在开发过程中指定权限

答案是否定的。您无法在开发过程中为 SharePoint 托管的加载项指定用户或组权限。
原因很简单:加载项 Web 与 SharePoint 场的其余部分隔离,并且可以安装在场中的任何位置。考虑到用户和组的范围仅限于网站集级别,如果您在多个网站集中安装加载项,则无法说明该网站集中哪些用户和组可用。
此外,如果您在 SharePoint 商店中发布外接程序,则外接程序不知道它将安装在哪个环境中,因此无法确定哪些用户或组有权访问外接程序中的内容。在网络中。

安装后指定权限

这个问题的答案是肯定的。安装应用程序后,您可以在加载项 Web 中指定列表权限和项目权限,就像在主机 Web 中一样。
默认情况下,加载项 Web 中的所有列表都会继承主机 Web 的权限,因为加载项 Web 本身会继承主机 Web 的权限。因此,您需要成为主机 Web 上的网站集管理员或网站所有者,才能中断继承并更改加载项 Web 中的列表的权限。

一些加载项权限提示

  1. 您可以在主机网站中创建群组,然后使用这些群组 assign permissions to lists在您的加载项 Web 中,就像对主机 Web 中的列表执行操作一样。 SharePoint 组提供了更好的权限管理,即当新用户/员工需要列表的权限时,您只需将该用户添加到可在网站集中的任何位置访问的组中,而不是直接在加载项 Web 中的列表中执行此操作.

  2. 您可以使用 SharePoint 2013 工作流设置加载项 Web 上的列表项的权限,该工作流以提升的权限运行(请参阅 AppOnlySequence 事件)并使 RESTful web service调用更改列表项权限。

  3. 使用 Visual Studio 开发和调试/安装外接程序时,请确保在更改列表权限后不要停止调试,因为如果停止并重新开始调试,您的外接程序将收到新的唯一 ID(即主机 Web 中安装的新实例)以及您之前设置的所有列表权限都将丢失。
    请注意,您可能会被迫在当天结束时停止调试并重新启动第二天进行调试,这将创建加载项的新实例。在这种情况下,您必须在主机 Web 上再次信任该加载项,否则当您尝试在该加载项上再次更改列表权限时,您将遇到访问被拒绝的情况-在网络中。

  4. 如果您希望在设置列表权限方面真正智能/高效,您可以在加载项中创建一个包含按钮控件的管理页面,并编写一些 JavaScript code using JSOM单击按钮时在该页面上运行,这将自动为您设置列表权限。

  5. 由于默认情况下,加载项 Web 继承了主机 Web 的所有权限,因此您有时可能需要中断该继承才能授予用户(通常在主机 Web 上拥有只读权限)加载项 Web 上的提升权限(例如贡献或更多)。一个聪明的人写道an article关于使用以下方法来做到这一点的巧妙方法:

    • 用于打破继承和设置权限的 jQuery + REST API。 (可以使用 JSOM 以及 jQuery 和 REST API 的替代方案)
    • 和 JSOM 使用 AllProperties 设置自定义属性SPWeb 对象的成员,以便指定已为加载项 Web 设置权限。

关于SharePoint 托管应用程序 2013 - 列出应用程序级别的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26652767/

相关文章:

sharepoint - 如何通过Linux更新Sharepoint 2010中的文档?

c# - 使用 C# 访问 OneDrive For Business (Office365) - 无法列出子文件夹

sonarqube - 将 Sonar MSBuild Runner 与/p :IsPackaging=True 一起使用

Sharepoint在线: Difference between SPAppWebUrl & SPHostUrl

javascript - 未捕获的 ReferenceError : Type is not defined in sp. runtime.js

css - Webpart 标题在编辑时可见,编辑后不可见

sharepoint - 绩效点的明确性

javascript - 使用 SP.PeoplePicker 中的 SP.Field 值更新 SP.ListItem

sharepoint - SharePoint 个性化 url/重定向的最佳实践