【问题标题】:Unable to render aspx files when uploaded to SharePoint programmatically以编程方式上传到 SharePoint 时无法呈现 aspx 文件
【发布时间】:2023-02-14 21:19:37
【问题描述】:

我是 SharePoint 新手。我编写了一个简单的 python 脚本,基本上连接到 SharePoint 并将文件(aspx 和其他前端文件)从我本地计算机上的文件夹上传到 SharePoint 站点上的特定文件夹。

为了便于脚本与 SharePoint 通信,我使用 SharePoint 纯应用程序模型在 SharePoint 下创建了一个应用程序主体。我通过调用 appregnew.aspx 来完成此操作,示例:https://spo.test.com/sites/MYSITE/\_layouts/15/appregnew.aspx,下面是调用“appregnew.aspx”时的示例页面

然后,我通过“appinv.aspx”向 App 主体提供了以下权限,例如 - https://spo.test.com/sites/MYSITE/\_layouts/15/appinv.aspx

<AppPermissionRequests AllowAppOnlyPolicy="true">
  <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web" Right="FullControl"/>
</AppPermissionRequests>

接下来,我使用Python脚本下的Client ID和Client Secret与SharePoint建立通信,并将文件上传到SharePoint上的特定文件夹(文件夹已经存在,不是程序创建的),文件上传路径示例: https://spo.test.com/sites/MYSITE/Shared%20Documents/TeamDocs2

注意:此脚本使用 Python 库“Office365-REST-Python-Client”与 SharePoint 通信

该脚本可以成功验证自身并将文件上传到 SharePoint 上的文件夹。但是当我手动转到 SharePoint 文件夹并单击 aspx 文件时,例如:index.aspx;该文件被下载而不是被渲染。

该文件没有问题,即它没有损坏,因为当我手动将相同的文件上传到相同的文件夹时,没有问题,文件被渲染。

关于 App principal 的权限,我已经在“sitecolletion/web”级别的范围内提供了“FullControl”。我还尝试将范围从“http://sharepoint/content/sitecollection/web”更改为“http://sharepoint/content/sitecollection”,但效果不佳

请有人帮我解决这个问题。提前致谢

【问题讨论】:

  • 好的。在花费大量时间尝试解决此问题后,我只是简单地创建了一个新的 SharePoint 站点,然后使用 PowerShell 在 SharePoint 中启用了自定义脚本。

标签: python sharepoint sharepoint-online sharepoint-rest-api office365-rest-client


【解决方案1】:

下载 .aspx 页面的原因与 SharePoint 中的安全风险缓解有关。如果您认为 Javascript (.js) 文件和 .aspx 文件是可执行的浏览器中的文件,那么不言而喻的是,允许用户将此类文件上传到 SharePoint 可能会带来风险。正因为如此,微软默认在所有现代网站上禁用了自定义脚本。您可以选择overrule this setting,但应格外小心。

【讨论】:

    猜你喜欢
    • 2014-03-29
    • 2020-01-27
    • 2014-02-25
    • 2021-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多