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

Call external service from SharePoint Online web part

我们正在将本地 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 部件是否可以通过这种方式获取数据?我们是否应该采取其他方向来实现这一目标?

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

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

您不需要 SharePoint Online 中的 BCS 来调用外部 EP。这是有关如何使用 JavaScript.

执行此操作的示例

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

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