Session对象
Session对象是HttpSessionState的一个实例。该对象可以存储用户一次会话过程中的信息。当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。
Session对象的特点
- 生命周期
一般来说,在页面打开时生命期开始,页面关闭时生命期结束,Session对象在这个期间一直存在。可以通过设置Session 对象的TimeOut属性来决定其生命期,超过该设定时间后Session 对象会自动释放。
- 用户私有
Session 对象不能跨进程访问,一个用户的Session 对象与其他用户的Session 对象是完全独立的,不会相互影响;换一句话说,针对每一个用户保存Session 对象的信息是该用户自己私有的,别的用户无法获得。
- 存储位置
每个会话的Session 对象独立存储,默认情况下存储于服务器端内存中(默认存储模式为InProc,可通过Web.config配置),占用服务器资源;能储存任何数据类型,包含自定义对象。
Session对象的属性
- SessionID属性
SessionID是用户一次会话的标识。用户首次与Web服务器建立连接时,服务器会给该会话分配一个唯一的标识SessionID,默认情况下SessionID以cookie的方式保存在客户端浏览器的内存中。用户每次提交页面,浏览器都会把这个SessionID包含在HTTP头中提交给Web服务器,这样Web服务器就能区分当前请求来自于哪一个客户端,从而根据这个SessionID返回相应的数据。
- TimeOut属性 TimeOut属性可以用来手动设置Session对象的生命期。默认的时间是20分钟,可以根据实际情况来设定,语法格式为:
Session.Timeout = n (单位为分钟)
Session对象的访问
- Session对象集合的存取
例如:Session["UserName"] = TextBox_User.Text;
- Session对象的清除
Session.Clear() // 清除会话状态中的所有值
Session.RemoveAll() // 清除所有会话状态值
Session.Remove() // 删除会话状态集合中的项
Session.Abandon(); // 用来强制结束会话