Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在域上同步会话_C#_Asp.net_Session - Fatal编程技术网

C# 在域上同步会话

C# 在域上同步会话,c#,asp.net,session,C#,Asp.net,Session,如何在多个第二域服务器上同步sessionID?例如,我有服务器(您可以在任何一个服务器上登录到ServerSwarm)、www.service1.com、www.service2.com、www.service3.com,如果您在其中一个服务器上登录,登录信息(+任何其他信息)应该会一直存在。如何向其他域提供SessionID?(会话本身存储在跨服务共享的sql server上)。您不是指跨域吗 由于浏览器中的安全功能,这是不可能的。浏览器不允许跨域访问cookie。跨域登录是可能的,但非常棘

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

您不是指跨域吗


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

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

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

我看到这个会话id通过url重定向和后端服务器通信传回服务器

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

  • 在给定站点上登录
  • 该站点将向身份验证服务器发送一个幕后请求,请求身份验证和信息
  • 身份验证服务器将做出适当的响应
  • 该站点将在成功时登录,并在失败时显示错误消息
    可以使用一些奇特的重定向和某种形式的信任来实现自动登录系统,但老实说,这样的事情很少值得。上述建议最终会导致他们不得不登录每个站点,但他们在每个站点上共享相同的凭据和配置文件。

    。对不起,我糟糕的英语,更正:)我知道cookies不能共享,但我在某处见过这种行为,因此应该有任何黑客来实现这一点[编辑:这里的“this”是指我的问题]