Application、Session和Cookie

方法

信息量大小

保存时间

应用范围

保存位置

Application

任意大小

整个应用程序的生命期

所有用户

服务器端

Session

小量,简单的数据

用户活动时间+一段延迟时间(一般为20分钟左右)

单个用户

服务器端

Cookie

小量,简单的数据

可以根据需要设定

单个用户

客户端

1.Application对象 

    Application对象是HttpApplication类的实例。它可以在多个请求、连接之间共享共用信息,也可以在各个请求连接之间充当信息传递的管道。此对象的生命周期起始于IIS开始运行并且开始连接时,终止于IIS关闭或者一段时间内无人连接时。当Application对象的生命周期开始时,Application_Start事件会被启动。用Application_Start事件初始化计数器如:Application["counter"]=0; 

    Application用于保存所有用户的公共的数据信息,如果使用Application对象,一个需要考虑的问题是任何写操作都要在Application_OnStart事件(global.asax)中完成.尽管使

用Application.Lock和Applicaiton.Unlock方法来避免写操作的同步,但是它串行化了对Application对象的请求,当网站访问量大的时候会产生严重的性能瓶颈.因此最好不要用此

对象保存大的数据集合。

2.Session对象

    Session是System.Web.UI.HttpSessionState类的实例。Session对象的所有引用都是在引用当前用户的会话对象,此对象提供了字典风格的访问机制,当特定的用户不再访问Web站点上的页面时,一些信息将被丢失。

    可以在Web.config文件中对会话的Session失效时间TimeOut进行设置,默认值为20分钟,最小值为1分钟。

    在会话结束时运行Session_End,只有在Web.config文件中将sessionstate模式设置为Inproc时才会引发Session_End事件。如果会话模式设置为State Server或SQL Server,则不会引发该事件。
    Session用于保存每个用户的专用信息.它的生存期是用户持续请求时间再加上一段时间(一般是20分钟左右).Session中的信息保存在Web服务器内容中,保存的数据量可大可

小.当Session超时或被关闭时将自动释放保存的数据信息.由于用户停止使用应用程序后它仍然在内存中保持一段时间,因此使用Session对象使保存用户数据的方法效率很低.对于

小量的数据,使用Session对象保存还是一个不错的选择.使用Session对象保存信息的代码如下:

//存放信息
Session["username"]="zhouhuan" ;
//读取数据

string UserName=Session["username"].ToString();

   3.Cookie对象


    Cookie用于保存客户浏览器请求服务器页面的请求信息,程序员也可以用它存放非敏感性的用户信息,信息保存的时间可以根据需要设置.如果没有设置Cookie失效日期,它们仅

保存到关闭浏览器程序为止.如果将Cookie对象的Expires属性设置为Minvalue,则表示Cookie永远不会过期.Cookie存储的数据量很受限制,大多数浏览器支持最大容量为4096,因

此不要用来保存数据集及其他大量数据.由于并非所有的浏览器都支持Cookie,并且数据信息是以明文文本的形式保存在客户端的计算机中,因此最好不要保存敏感的,未加密的数据,

否则会影响网站的安全性.使用Cookie对象保存的代码如下:

//存放信息
Response.Cookies["UserID"].Value="0001" ;
//读取信息

string UserID=Response.Cookies["UserID"].Value;
  添加Cookie时:
  HttpCookie newCookie = new HttpCookie("userIP");   
  //newCookie.Expires = DateTime.MaxValue;
  newCookie.Expires = DateTime.Now.AddMonths(1);          
  //添加新的Cookie变量IPaddress,值为UserIP
  newCookie.Values.Add("IPaddress", UserIP);
  //将变量写入Cookie文件中
  Response.AppendCookie(newCookie);
  获取Cookie值:
  HttpCookie oldCookie=Request.Cookies["userIP"];
  string userIP = oldCookie.Values["IPaddress"];

转载于:https://www.cnblogs.com/c-y-across-I/archive/2013/05/09/3069358.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值