ASP.NET 的session对象

来源:互联网 发布:tinycore linux有啥用 编辑:程序博客网 时间:2024/05/19 22:59

 

  ASP.NET一共内建了7个对象,有session 、Application、response 、request 、server 等。

  这里就介绍其中的session对象。Session即会话,他是指一个用户在一段时间内对某一个站点的一次访问。它表示一个客户端用户与服务器进行通信的时间间隔。通常是指从登录进入系统一直到退出系统所经历的时间。每一个用户访问web时访问的Application对象的内容是完全相同的,session对象就提供了一个sessionID属性来来对用户进行唯一的区别。即每一个网页浏览者都会有一个自己的sessionID,标识唯一。

  Session属性

  Count   获取会话状态集合中Session对象的个数

  Contents  获取对当前会话状态对象的引用

  Keys    获取存储在会话中的所有值的集合

  SessionID   获取用于标识会话的唯一会话ID

  TimeOut    获取并设置在会话状态提供程序终止会话之前各请求之间所允许的超时期限(用户超时)

  Mode    获取当前会话状态模式

 

  Session方法

  Add    新增一个Session对象 (session对象是不可用实例,可以通过Add方法设置session对象的值: session.add(变量名, 变量值 )或者 session[变量名]=变量值;

  Clear  清楚会话状态中的所有值

  CopyTo 将会话状态值的集合复制到一维数组中

  Remove  删除会话状态集合中的项

  RemoveAll  清楚所有会话状态值

 

  Session事件

  Session_start 会话启动时激发

  Session_end 会话结束时激发

  Session对象优点:

  当很多web网页传递一个变量的时候,session变量的传递比QueryString传递变量简化问题。

可以在任何时候使用session变量,而且不需要事先声明它,这种方式接近在VB变量的使用。使用完毕后,也不用考虑将其释放,因为它将自动释放。

  缺点:

  Session变量和cookies是同一类型的。如果某用户将浏览器设置为不兼容任何cookie,那么该用户就无法使用这个session变量。

  当一个用户访问某页面时,每个Session变量的运行环境便自动生成,这些Session变量可在用户离开该页面后仍保留20分钟!如果在Session中置入了较大的对象(如ADO connections),那就有麻烦了!随着站点访问量的增大,服务器将会因此而无法正常运行!

  因为创建Session变量有很大的随意性,可随时调用,不需要开发者做精确地处理,所以,过度使用session变量将会导致代码不可读而且不好维护。


原创粉丝点击