2016-09-27 106 views
0

在我的ASP.NET应用程序中,在某些时候,我必须重定向到另一个域来执行用户身份验证,并且该域的成功将重定向回到我的域。asp.net sessionId恢复会话对象

例如:

my domain: www.domainA.com 
other domain: wwww.domainB.com 
flow: domainA.com (goes to)-> domainB.com (goes to)-> domainA.com 

所以我想做什么是存储在DOMAINA会话对象才去域B,然后恢复会话对象,当谈到回domainA.com(不知道这甚至有可能)

我已经告诉约是asp.net使用会话ID将创建一个名为“ASP.NET_SessionId”的cookie,所以当它回来我的域名将被用于恢复(再次不确定是否属实)

如果上述说法属实,我该如何恢复会话对象?

如果不是这样,那我该如何将会话对象存储在domainA.com中,直到它通过domainB.com上的身份验证流程,然后返回到domainA.com?

P.S:当它回到domainA.com时,Cookie仍然存在,并且具有相同的值。

+0

这是非常困难的,因为你描述的会话状态的默认行为来回答你的问题。所以,如果你描述*你*相信会话状态的工作,它可以帮助...(或者读[ASP.NET会话状态概述](https://msdn.microsoft.com/en-us/library/ ms178581.aspx))和[edit]你的帖子... –

+0

@AlexeiLevenkov谢谢你的回复。我认为会话在浏览domainA.com时保持活跃状态​​,并且在进入domainB.com时将会丢失。我会更多地了解这一点,并会在病房后更新问题。谢谢 –

回答

0

Session变量存储在服务器上。为每个新用户创建一个新的会话变量。服务器使用唯一的会话ID存储用户的会话,以便每个用户的会话都能被唯一标识。

SessionID的是客户的详细信息,如用户的IP,使用浏览器,浏览器版本,操作系统,操作系统版本等

组合,我们可以得到这样的使用HttpCookie("ASP.NET_SessionId", "")的SessionID。在重定向到另一个页面之前,您可以将其保存在会话对象中。如果用户身份验证成功,您可以将一个布尔值从“domainB”页面传递到“domainA”页面。如果布尔值为true,则不会恢复会话。

有关的SessionID的用法的详细信息:Refer this page.