部分引用自: http://www.cnblogs.com/jintan/archive/2007/05/10/741175.html
最近在修改一个项目的时候碰到一个问题,在登录时使用
Session.Abandon();
Session.Clean();
Session["user"] = "admin";
然后用Page.Redirect("xxx.aspx")后
新页面xxx.aspx中Session["user"] 还是为空,一直找不到问题的所在,后来把Session.Abandon();去掉后就可以了,为什么这样呢?
Abandon 方法被调用时,将按序删除当前的 Session 对象,不过在当前页中所有脚本命令都处理完后,对象才会被真正删除。这就是说,在调用 Abandon 时,可以在当前页上访问存储在 Session 对象中的变量,但在随后的 Web 页上不行。
使用Session.Clear()没有这个问题
如果要用Session.Abandon(),最好放在一个独立的页面。