Response.Redirect Session丢失

  在设置session的页面调用Response.Redirect进行转向后,在转向的页面无法获取到 Session ,会导致session丢失,session为null值。

Session["xxx"] = xxx;
Response.Redirect("yyy.aspx");

  原因:当asp.net 执行 Response.Redirect 时会强制终止当前Response ,不发送当前页面的cookie 给浏览器,而是发送一个指令告诉浏览器重新发送一个新的HTTP请求到新的URL,结果导致当前的Session 丢失。

  解决这个问题的方法是在当前页面接受Get请求时就设置一下Session ,这样浏览器就会记录下当前的Session Id,当浏览器再发送Post 请求到当前页面时,Server就不需要再发送一次Session ID 的cookie 给浏览器了。

  另外一个办法就是输出js脚本进行跳转,这样cookie会发送到客户端。

Session["xxx"] = xxx;
//Response.Redirect("yyy.aspx");
Response.Write("<script>location='yyy.aspx';</script>");

来源:http://www.cnblogs.com/eaglet/archive/2009/11/10/1599480.html

加支付宝好友偷能量挖...


评论(0)网络
阅读(320)喜欢(0)Asp.Net/C#/WCF