最近在修改一个项目的时候碰到一个问题,在登录时使用
Session.Abandon();
Session.Clean();
Session["user"] = "admin";
然后用Page.Redirect("xxx.aspx")后
新页面xxx.aspx中Session["user"] 还是为空,一直找不到问题的所在,后来把Session.Abandon();去掉后就可以了,为什么这样呢?
查了下资料,原来有很多人和我一样碰到同样的问题的。
一旦调用 HttpSessionState.Abandon 方法,当前会话不再有效,同时会启动新的会话。Abandon 使 SessionStateModule.End 事件被引发。发送下一次请求后将引发新的 SessionStateModule.Start 事件。
如果要用Session.Abandon();最好放在一个独立的页面。
本文探讨了在使用Session.Abandon()后新页面Session为空的问题,并提供了有效的解决方案。通过理解Abandon方法的工作原理,我们能够避免常见的陷阱。
348

被折叠的 条评论
为什么被折叠?



