0

我有一个客户选择使用 Business Catalyst 来提供面向公众的服务,并且他们希望访问大约四个不同的服务器以进行各种活动。设计团队提出了一项要求,即能够使用 Business Catalyst 上每个目的地的独特登录表单登录这些不同的服务器。

第一个问题是在 https 页面中有一个登录表单。Business Catalyst 具有“安全区域”,可以向已经登录 Business Catalyst 的用户公开,我相信有一种方法可以通过向一系列 IP 地址开放安全区域而无需登录。任何开发人员都觉得这不是一个善意的举动(如果安全区域必须暴露给所有人,那就是矛盾的),所以如果它通过了精神错乱检查,请告诉我。从用户体验的角度来看,让用户登录到 Business Catalyst 以便他们可以登录到其中一个安全服务器是行不通的。

第二个问题是 Business Catalyst 声明它必须在安全区域内才能使用我需要使用的外部工具进行任何工作。这可以通过解决第一个问题来解决,但这通常与表单查询有关。我有内容模块需要在不登录的情况下查询这些服务器,以将非关键信息作为响应拉下来。

我在这个周末进行了一次非详尽的搜索,试图找到一个优雅的解决方案来应对这一挑战,但这似乎不是 Business Catalyst 旨在处理的事情。

对于那些 TLDR 的人;

  • 我需要一种安全的方式从 Business Catalyst 登录到 4 个服务器中的 1 个,而无需登录到 Business Catalyst(上面提到的当前实现理论)。
  • 我需要一种方法来查询来自 4 台服务器中的 1 台服务器的非关键信息响应,而无需登录 Business Catalyst(例如返回成本估算结果)。
  • 让用户登录 Business Catalyst 只是为了拉取查询或登录到 4 台服务器中的 1 台是不可接受的。
  • 可能无法允许用户使用其 Business Catalyst 会话句柄访问其他服务器。
4

1 回答 1

3

当用户登录到 BC 时,他会得到 form 中的 cookie VSVxxxxx,其中 xxxxxx 是 BC 站点 ID。cookie 的内容是经过哈希处理的活动会话 ID。然后 BC 导出两个 Web 服务 API - CRM 和电子商务。在 CRM Web 服务中有一个方法Contact_IsLoggedIn,它带有两个参数——用户 ID 和会话 ID。会话 ID 是来自用户VSVxxxxxcookie 的一个。它返回真/假,用户是否真的登录 BC。

请注意,BC 有一些奇怪的会话处理......它持续 30 分钟。无论用户是否点击网站。

于 2014-02-19T10:32:58.407 回答