【问题标题】:Synchronizing sessions over domains跨域同步会话
【发布时间】:2023-03-15 08:05:01
【问题描述】:

如何在多个第二域服务器上同步 sessionID?例如,我有服务器(您可以在其中任何一个上登录服务器群)、www.service1.com、www.service2.com、www.service3.com,如果您在其中一个上登录,登录信息(+其他任何内容)应该一直存在。如何向其他域提供 SessionID? (会话本身存储在跨服务共享的 sql server 上)。

【问题讨论】:

    标签: c# asp.net session


    【解决方案1】:

    跨域登录是可能的,但非常棘手,并且容易出现问题。

    通常,执行此操作的方案将涉及充当集中式身份验证服务器的第三台服务器。各个站点上的登录请求将通过身份验证服务器进行路由,身份验证服务器将传回一个安全令牌以用作会话 ID。

    我已经看到这个会话 ID 通过 url 重定向以及后端服务器通信传递回服务器。

    我的个人建议是将身份验证服务器用作某种网络服务,并分别维护各个站点的登录。工作流程大致如下:

    1. 在给定网站上登录
    2. 该站点会向身份验证服务器发送一个后台请求,请求身份验证和信息
    3. 身份验证服务器会做出适当的响应
    4. 该站点将登录成功,并在失败时显示错误消息。

    可以使用一些花哨的重定向和某些形式的信任来实现自动登录系统,但老实说,这样的事情很少值得。上述建议最终会导致他们必须登录每个单独的站点,但他们会在每个站点上共享相同的凭据和配置文件。

    【讨论】:

      【解决方案2】:

      你不是说跨域吗?

      由于浏览器的安全功能,这是不可能的。浏览器不允许跨域访问 cookie。

      【讨论】:

      • 我愿意。抱歉,我的英语很差,已更正:) 我知道无法共享 cookie,但我在某处看到过这种行为,所以应该有任何黑客来实现这一点[编辑:我的意思是我的问题]跨度>
      猜你喜欢
      • 2010-11-23
      • 1970-01-01
      • 1970-01-01
      • 2017-03-14
      • 2014-10-19
      • 1970-01-01
      • 1970-01-01
      • 2011-02-26
      • 1970-01-01
      相关资源
      最近更新 更多