如何通过仅应用程序调用来管理 SharePoint 托管应用程序
-
29-09-2020 - |
题
我有一个 SHarePoint 托管应用程序。我屈服了 appmanifest.xml
作为应用程序仅调用并给定范围作为租户。
<AppPermissionRequests AllowAppOnlyPolicy="true" >
<AppPermissionRequest Scope="http://sharepoint/content/tenant" Right="FullControl" />
</AppPermissionRequests>
该应用程序将通过获取用户的输入为每个用户创建文件夹。即使用户对该库只有只读权限,应用程序也应该代表用户创建文件夹。
但是,如果我部署此应用程序并尝试拥有编辑权限的用户,则会给出 Access Denied
错误。
在这种情况下会出现什么情况。我是否需要在 javascript 文件中为仅应用程序调用创建任何对象才能满足我的要求?我用 google 搜索,但没有获得有关仅使用应用程序调用的 SharePoint 托管应用程序的任何正确信息。
解决方案
AppOnlyPolicy
不适用于 SP 托管应用程序,因为它使用 OAuth 令牌。您必须授予用户权限才能完成此操作。
根据 微软软件定义网络:
不进行 OAuth 身份验证调用的应用程序(例如,仅在应用程序 Web 中运行 JavaScript 的应用程序)无法使用仅应用程序策略。他们可以请求该权限,但无法利用该权限,因为这样做需要传递仅限应用程序的 OAuth 令牌。只有具有在 SharePoint 外部运行的 Web 应用程序的应用程序才能创建和传递仅应用程序令牌。