我有2个应用程序,每个应用程序位于不同的域中。当用户访问第一个应用程序时,单击一个链接,用户将被发送到第二个应用程序。
我的问题如下:我需要将sessionId从第一个应用程序持久存储到第二个应用程序。很简单,但这里是捕获。我不能使用查询字符串,我不能使用cookie(因为在不同的域中)。我在想,有没有办法将自定义值插入HTTP标头或在中间页面上设置一些表格值然后POST到第二个应用程序?所以这个过程如下:
用户单击第一页上的链接,这会将用户带到“中间”页面,此“中间”页面在表单或http标头中设置sessionId值,然后“中间”页面将用户发送到第二个应用程序通过POST,其中应用程序将具有sessionId。
我无法使用Server.Transfer,因为该应用程序不在同一台服务器上。帮助
答案 0 :(得分:0)
答案 1 :(得分:0)
您可以使用的一种方法是使用Web服务。在用户切换站点之前,您可以为用户提供在离开之前已达成一致的唯一身份验证令牌。
你可以做的另一件事(这不是一个很好的解决方案,但它的工作原理)是使用框架,并通过javascript(登录信息)发送子框架信息。我真的不喜欢这种方法,因为它提出了许多最好避免的问题。
我的意思是:
答案 2 :(得分:0)
您可以尝试使用安全令牌创建安全的SOAP或XML请求,该安全令牌引用您在共享数据库中为用户存储的会话ID。然后,如果找到匹配项,则可以根据存储在数据库中的会话ID加载用户的会话。
答案 3 :(得分:0)
使用OpenID。它是为此目的而设计的(对多个域上的网站进行通用身份验证)。该协议已经开发多年,可能遇到并解决了许多问题,如果你推出自己的解决方案,可能会遇到这些问题。