技术开发 频道

ASP.NET2.0揭秘:使用会话状态Session

  【IT168 技术文档】和cookie不一样的是,Session状态没有大小限制。如果有极端的要求,可以使用Session保存上G的数据。并且Session可以保存更复杂的对象,例如可以在Session中保存一个DataSet。
   
  当使用一个Session状态时,一个名为ASP.NET_SessionId的cookie会自动添加到浏览器。这个cookie包含一个唯一的标识符,它可以在页面切换时跟踪用户。
   
  默认情况下,如果cookie被禁用了,Session状态也不能正常工作了。默认情况下,假设用户超过20分钟不请求任何页面,保存在Session状态中的数据会被丢弃。

  使用Session对象
    
  用户操作Session状态最主要的应用程序编程接口是HttpSessionState类。该对象被 Page.Session,Context.Session,UserControl.Session,WebService.Session和 Application.Session属性暴露。也就是说基本可以在任何地方访问到Session状态。

  HttpSessionState支持下面这些属性:

  CookieMode——用来指定是否启用不依赖cookie的Session状态功能。
  Count——用来获得Session状态中包含项的数量。
  IsCookieless——用来指定是否启用不依赖cookie的Session状态功能。
  IsNewSession——用来检测当前请求是否创建了新的用户会话;
  IsReadOnly——是否只读;
  Keys——用来获取保存在Session状态中项目的名称列表;
  Mode——用来指定当前Session状态的存储处理程序。
  SessionID——用来获得唯一的会话标识符;
  Timeout——用来指定Web服务器假设用户离开并取消Session状态过期分钟数。最大为525600分钟(1年);
  HttpSessionState对象还包含以下方法:
  Abandon——用来终止一个用户会话;
  Clear——用来清除Session状态中所有项目;
  Remove——用来从Session状态中删除特定的项目;

  提交会话事件

  Global.asax中包含两个可以处理的关联Session状态的事件:Session Start和Session End事件。Session Start事件是在一个新会话开始时触发的,Session End事件在会话终止时被触发。

0
相关文章