我有一个收集一些用户信息的ASP.NET页面,然后将包含网址的帖子发送到第三方网站进行处理。处理完第三方网站后,将帖子发回原始帖子中包含的网址。问题是当新页面收到帖子消息时SessionID
不同且用户信息不在新会话中。如果我存储原始SessionID
,我可以使用它来连接到原始会话吗?
答案 0 :(得分:1)
之前我遇到过这种情况,我使用了一些不同的解决方案。
一种方法类似于Nico的网站要求回发的URI,我附加了一个指向数据库中临时表的guid(我不喜欢将UserID放在URL中就像那样)。我的版本是:
http://www.mysite.com/myThirdPartyCallBack?guid=abcd12345-fgsdfg-3rqwer
然后,您可以在第三方重定向之前从您放入的数据库中获取值。
答案 1 :(得分:0)
快速回答是否定的。您无法重复使用现有会话。会话的目的是对多个平台(和浏览器)中的每个访问者都是唯一的。
如果我理解正确,第三方网站会异步回发到指定的网址。如果是这种情况,则会为第三方请求分配新的会话ID,因为它是Web应用程序的新会话。我建议修改您的回拨URL以回发一些信息,然后允许您找到最初发送的用户信息。这可以通过提供表示用户ID的查询字符串键来完成,或者更高级指向Web存储系统中的键以查找原始请求的更多详细信息。例如http://www.mysite.com/myThirdPartyCallBack?userID=abcd12345
另一方面,如果发生以下过程。用户将表单发布到第三方站点。然后,用户在第三方站点上完成一些工作,然后重定向回您的站点,这更多是会话计时问题。如果是这种情况,那么我会检查您的会话时间,以确保它们足够长,以便用户在第三方网站上完成工作。
只是想法。