从HttpMethod POST切换到Get时,ASPX丢失会话

时间:2013-02-05 20:07:54

标签: c# asp.net http session get

最近,客户要求我使用POST而不是GET(来自第三方网站)登录旧网站,现在所有需要的变量都会在帖子中发送查询字符串。

问题是,在收到所有变量后,它们会存储到Session中,然后重定向到应用程序中的正确页面(来自徽标页面)。 虽然这在使用GET调用页面时效果很好,但POST调用将丢失所有会话变量

Response.Redirect(@"~/SOMEPAGE.aspx",false);

另一件奇怪的事情是会话ID将保持不变但所有值都将消失。 使用Server.Transfer时,会话完好无损,但在使用Response.Redirect后将丢失。 (没有更改所有代码的选项。)

是否有人知道解决此问题的方法或可能使用的某种解决方法。

谢谢!

1 个答案:

答案 0 :(得分:0)

有几个原因可能发生。

  • 您在代码中使用Session.Abandon()
  • 您正在安全(https://)和不安全(http://)网址
  • 之间切换
  • 你的global.asax中有一些代码正在操作Session,或者你的Response.Cookie的.Secure或.Path属性

修改 http://forums.asp.net/t/1670844.aspx