从 SharePoint Online Web 部件调用外部服务

Posted

技术标签:

【中文标题】从 SharePoint Online Web 部件调用外部服务【英文标题】:Call external service from SharePoint Online web part 【发布时间】:2016-01-31 07:54:50 【问题描述】:

我们正在将本地 SharePoint 安装迁移到 SharePoint Online。我们有许多需要转换的现有 C# Web 部件。这些 Web 部件当前访问我们的一些本地数据……我们需要让这些 Web 部件在 SharePoint Online 上运行;但是,我们不确定最佳方法。

我们已经研究过 BCS,但它似乎更倾向于通过基本的 CRUD 方法同步数据列表。对于我们的许多应用程序,我们不希望同步列表,而是更多地寻找服务上的面向操作的方法,这些方法可以根据 Web 部件的需要按需调用。

我们不相信调用可以是客户端的,因为用户通常会从未加入我们域的工作站访问 SharePoint Online,并且我们不希望用户必须单独对我们的域进行身份验证服务(即我们希望我们的服务仅信任 SharePoint Online 后端)。

我们的理想设置是让用于 Web 部件的 C# 代码调用到我们的 Web 服务(托管在我们的域中,使用 SPO 安全存储中的服务帐户进行身份验证),从 SharePoint 上下文传递当前用户名,以及返回响应,然后 Web 部件可以使用它进行处理。

但据我们了解,SharePoint Online 中的 Web 部件是沙盒化的,因此它们无法通过 HttpWebRequest 进行外部 HTTPS 调用。

我们已经搜索了与我们的用例相关的操作示例或文档,但没有找到任何说明可能或不可能的信息。有人知道 Web 部件是否可以通过这种方式获取数据?我们应该采取其他一些方向来实现这一目标吗?

【问题讨论】:

【参考方案1】:

在 SharePoint Online 中,如果您正在开发 SharePoint 托管应用程序;在清单文件中添加这些端点后,您将能够调用外部端点 (EP)。

如果您没有将这些端点添加到清单文件中,这意味着您不允许应用调用外部 EP。

您不需要在线 SharePoint 中的 BCS 来调用外部 EP。这是一个关于如何使用 javascript 执行此操作的示例。

https://msdn.microsoft.com/en-us/library/office/fp179895.aspx

如果您有任何其他问题,请告诉我。

【讨论】:

乍一看,这似乎描述了我们正在寻找的东西。 BCS 根本不适合我们,希望我们能有更多的运气。谢谢你的链接,非常感谢。 很高兴听到这个答案对您有所帮助。告诉我进展如何。

以上是关于从 SharePoint Online Web 部件调用外部服务的主要内容,如果未能解决你的问题,请参考以下文章

筛选 Web 部件不再在 Sharepoint Online 中可用

Sharepoint Online 上禁止 WebRequest

SharePoint Online - 内容编辑器 Web 部件 - 机密管理

通过Powershell在SharePoint Online上添加日历Web部件

SharePoint Online Web 部件 - 全局属性/配置

删除轮播中的空格 - SharePoint Online 新式 Web 部件