使用Session.Abandon()注意

摘要:
调用放弃方法时,将依次删除当前会话对象。但是,在处理当前页面中的所有脚本命令之前,不会删除该对象。也就是说,当调用放弃时,存储在Session对象中的变量可以在当前页面上访问,但不能在后续网页上访问。如果要使用会话。放弃(),你最好把它放在另一页上。

部分引用自: 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(),最好放在一个独立的页面。

免责声明:文章转载自《使用Session.Abandon()注意》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇各大瀑布流简析与建议魔兽 1.24B 作弊内存地址全公开下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

防止一个用户登录多次的方法

在web开发时,有的系统要求同一个用户在同一时间只能登录一次,也就是如果一个用户已经登录了,在退出之前如果再次登录的话需要报错。 常见的处理方法是,在用户登录时,判断此用户是否已经在Application中存在,如果存在就报错,不存在的话就加到Application中(Application是所有Session共有的,整个web应用程序唯一的一个对象):...

Django不允许单用户多浏览器同时登录

#在扩展用户表内,多添加一个session字段,用于存放session_key models.py class UserInfo(AbstractUser): id = models.AutoField(primary_key=True) department = models.CharField(max_length=10) la...

如何注册interceptor、Servlet、Listener、Filter

一、拦截器interceptor SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理。比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那样子判断当前时间是否是购票时间。 定义Interceptor实现类 SpringMVC 中的Interceptor 拦截请求...

mina学习

长连接表示一旦建立了链接,就可以长时间的保持双方的通讯,例如:socket链接,推送平台.短链接表示建立链接,完成数据的交换之后,就断开链接,例如: http链接. mina 框架是对socket链接的一次封装框架,可以更好的管理链接的任务.在很多的开源项目中使用,例如:Androidpn推送框架.可以通过简单的几行代码建立通讯链接. 客户端:...

ORACLE快速彻底Kill掉的会话

来源于:http://www.cnblogs.com/kerrycode/p/4034231.html 在ORACLE数据库当中,有时候会使用ALTER SYSTEM KILL SESSION 'sid,serial#'杀掉一个会话进程,但是使用这个SQL语句杀掉会话后,数据库并不会立即释放掉相关的资源,有时候你会发现锁定的资源很长时间也不会释放,即使会话...

C# 使用SuperSocket

一、需求场景 (1)使用SuperSocket进行网络通信 二、所需软件 (1)SocketTool 三、实现步骤 (1)使用Nuget管理器安装SuperSocket.Engine 该插件已经包含(SuperSocket插件) 注意:SuperSocket里面集成了log4net(如果你的程序中已经引入了log4net,一定要注意版本是否一致,如果不一...