会话在重定向时丢失

时间:2009-03-26 03:11:03

标签: asp.net session redirect

我有一个被Facebook点击的网络应用程序。登录页面检索我需要的密钥并设置一些会话变量。当服务器将用户重定向到下一页时,会话信息将丢失。我现在正在vista终极上运行IIS引擎,应用程序池无关紧要,因为我正在使用状态服务而且我仍然在丢失会话状态。我已经尝试了response.redirect函数的重载方法,并且还向页面添加了一个标题以强制重定向,但这似乎都不起作用。有没有人对我遗失的东西有任何想法?

我尝试过这两种方法:

Response.Headers.Add("refresh", "3;url=Dashboard.aspx")

Response.Redirect("Dashboard.aspx", False)

[编辑]

所以我刚做了一个小实验,结果发现当我直接从facebook页面点击url时我遇到了问题,但是当我将IFrame的url复制到一个新的浏览器窗口并尝试它时它工作正常细

[编辑]

所以我发现了一篇关于这个的文章,在addin gthe header之后问题解决了(现在)

http://support.microsoft.com/kb/323752

Response.AddHeader("P3P: CP", "CAO PSA OUR")

4 个答案:

答案 0 :(得分:1)

我尝试运行Fiddler,看看在通过Facebook与您的应用互动时,您的会话Cookie是否与回复一起正确发送。

答案 1 :(得分:1)

  

当我直接从Facebook页面点击网址时,我遇到了问题,但是当我将IFrame的网址复制到新的浏览器窗口并尝试时,它运行正常。

如果您在iframe中,则您设置的任何Cookie都是“第三方Cookie”。与用户直接在您网站上设置的正常“第一方”Cookie相比,第三方Cookie可能会受到更严格的条件限制。这可能是由于不同的浏览器默认cookie处理或因为用户故意这样配置它。 (并且有充分的理由:许多第三方都是令人不快的侵犯隐私的广告商。)

特别是在使用默认设置的IE6 +中,你不能设置第三方cookie,除非你写了P3P policy承诺你将是一个好孩子而不是将用户的数据鞭打到最近的识别窃贼

(实际上,当然P3P是一种死亡,因为没有什么可以阻止网站所有者只是撒谎。另一种没有任何实际安全性的无价值并发症。是的。)

答案 2 :(得分:0)

会话还取决于客户端的cookie支持。当你说这个应用程序“正被facebook击中”时,你确定通过什么意思他们“击中”你他们支持cookie吗?

答案 3 :(得分:-2)

Response.Redirect和refresh不携带会话。 Server.Transfer()可能会失去转移到其他服务器/站点的能力。