Asp.net Session对象初识

session对象

Session 对象用于存储用户的信息。存储于 session 对象中的变量持有单一用户的信息,并且对于一个应用程序中的所有页面都是可用的。 存储于 session 对象中的信息通常是 name、id 以及参数。服务器会为每个新的用户创建一个新的 Session,并在 session 到期时撤销掉这个 Session 对象。

 

事件:

Session_Start:会话开始

Session_End:会话结束


属性:

SessionID 唯一用户会话标识符

TimeOut 用户超时

LCID 本地标识符

IsNewSession 如果已使用当前请求创建会话,则返回True

Item 会话值得名称

Count 会话状态集合中的项目数

 

session的工作原理

(1)当一个session第一次被启用时,一个唯一的标识被存储于本地的cookie中。(Cookie就是服务器暂存放在你计算机上的一笔资料,例如我们登陆博客时,会把我们的登陆信息暂存在本地的cookie中,一段时间内我们不用再次登陆。)

(2)session开始:首先在Global.aspx中使用session_start()函数。

  以统计网页访问总人数和在线人数为例:

   //会话开始

        protected void Session_Start(objectsender, EventArgs e)

        {

            Session.Timeout =1; //设置过期时间1分钟,默认是20分钟

            Application.Lock();//控制并发

           Application["count"] =(int)Application["count"]+1;//一个用户登陆+1

           Application["total"] = (int)Application["total"] +1;//总人数+1

           Application["online"] = (int)Application["online"] +1;//在线人数+1

            Application.UnLock();//控制并发

        }

 (3)session结束:假如用户没有在规定的时间内在应用程序中请求或者刷新页面,session 就会结束。默认值为 20 分钟。可以设置 Timeout 属性更改过期时间。

  //会话结束

  protected voidSession_End(object sender, EventArgs e)

        {

            Application.Lock();

           Application["online"] = (int)Application["online"] -1;//在线人数-1

            Application.UnLock();

        }

 

优点

 

  如果要在诸多Web页间传递一个变量,那么用Session变量要比通过QueryString传递变量可使问题简化。

 

  要使WEb站点具有用户化,可以考虑使用Session变量。你的站点的每位访问者都有用户化的经验,基于此,随着LDAP和诸如MS Site Server等的使用,已不必再将所有用户化过程置入Session变量了,而这个用户化是取决于用户喜好的。

 

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

 

缺点

 

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

 

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

 

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

 

总结

 对于使用 Session 变量既有优点,也有缺点。 还要从我们做的项目看,如果是高访问量的网站显然缺点很明显 但是如果只是简单的企业信息管理等小型的, 使用它们确实能使 Web 开发大大地简化。是否使用 Session 变量完全取决于 个人的 需要,无论使用与否,都要事先考虑其优缺点。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值