ASP.Net Web开发基础 互动版

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

Session对象

Session对象是HttpSessionState的一个实例。该对象可以存储用户一次会话过程中的信息。当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。

Session对象的特点

  • 生命周期

一般来说,在页面打开时生命期开始,页面关闭时生命期结束,Session对象在这个期间一直存在。可以通过设置Session 对象的TimeOut属性来决定其生命期,超过该设定时间后Session 对象会自动释放。

  • 用户私有

Session 对象不能跨进程访问,一个用户的Session 对象与其他用户的Session 对象是完全独立的,不会相互影响;换一句话说,针对每一个用户保存Session 对象的信息是该用户自己私有的,别的用户无法获得。

  • 存储位置

每个会话的Session 对象独立存储,默认情况下存储于服务器端内存中(默认存储模式为InProc,可通过Web.config配置),占用服务器资源;能储存任何数据类型,包含自定义对象。

Session对象的属性

  • SessionID属性

SessionID是用户一次会话的标识。用户首次与Web服务器建立连接时,服务器会给该会话分配一个唯一的标识SessionID,默认情况下SessionIDcookie的方式保存在客户端浏览器的内存中。用户每次提交页面,浏览器都会把这个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(); // 用来强制结束会话