重新连接到ASP.NET会话

时间:2014-01-21 05:31:24

标签: c# asp.net session

我有一个收集一些用户信息的ASP.NET页面,然后将包含网址的帖子发送到第三方网站进行处理。处理完第三方网站后,将帖子发回原始帖子中包含的网址。问题是当新页面收到帖子消息时SessionID不同且用户信息不在新会话中。如果我存储原始SessionID,我可以使用它来连接到原始会话吗?

2 个答案:

答案 0 :(得分:1)

之前我遇到过这种情况,我使用了一些不同的解决方案。

然后,您可以在第三方重定向之前从您放入的数据库中获取值。

  • 第二种方法是在重定向之前将所需数据写入缓存。由于您可以将数据的生命周期设置为较短,因此这可能是一个简洁的解决方案,您不会通过URL公开任何信息。如有必要,请小心识别用户。

答案 1 :(得分:0)

快速回答是否定的。您无法重复使用现有会话。会话的目的是对多个平台(和浏览器)中的每个访问者都是唯一的。

如果我理解正确,第三方网站会异步回发到指定的网址。如果是这种情况,则会为第三方请求分配新的会话ID,因为它是Web应用程序的新会话。我建议修改您的回拨URL以回发一些信息,然后允许您找到最初发送的用户信息。这可以通过提供表示用户ID的查询字符串键来完成,或者更高级指向Web存储系统中的键以查找原始请求的更多详细信息。例如http://www.mysite.com/myThirdPartyCallBack?userID=abcd12345

另一方面,如果发生以下过​​程。用户将表单发布到第三方站点。然后,用户在第三方站点上完成一些工作,然后重定向回您的站点,这更多是会话计时问题。如果是这种情况,那么我会检查您的会话时间,以确保它们足够长,以便用户在第三方网站上完成工作。

只是想法。