ASP.NET中的Session状态 |
本文标签:Session状态 ASP.NET 和cookie不一样的是,Session状态没有大小限制 。如果有极端的要求,可以使用Session保存上G的数据 。并且Session可以保存更复杂的对象,例如可以在Session中保存一个DataSet 。 当使用一个Session状态时,一个名为ASP.NET_SessionId的cookie会自动添加到浏览器 。这个cookie包含一个唯一的标识符,它可以在页面切换时跟踪用户 。 默认情况下,如果cookie被禁用了,Session状态也不能正常工作了 。默认情况下,假设用户超过20分钟不请求任何页面,保存在Session状态中的数据会被丢弃 。 ASP.NET使用Session对象 用户操作Session状态最主要的应用程序编程接口是HttpSessionState类 。该对象被 Page.Session,Context.Session,UserControl.Session,WebService.Session和 Application.Session属性暴露 。也就是说基本可以在任何地方访问到Session状态 。 HttpSessionState支持下面这些属性: ASP.NET提交会话事件 Global.asax中包含两个可以处理的关联Session状态的事件:Session Start和Session End事件 。Session Start事件是在一个新会话开始时触发的,Session End事件在会话终止时被触发 。 会话失效控制 默认情况下,20分钟内用户不请求页面,Session过期 。可以在配置文件修改Session的过期时间:
也可以用编程的方式来改变Session状态的过期时间 使用Cookieless的会话状态 默认情况下,Session状态依赖cookie 。如果用户浏览器禁止了cookie,默认情况下Session状态就不能工作 。这种情况下可以使用无cookie的会话,当启用无cookie的会话时,用户的会话ID就会添加到页面的URL中 。 可以修改配置文件的sessionState元素,配置cookieless的值为AutoDetect 。
|