2004-6-5+ Httpcookie的简单应用

(说实话,我以前做asp的时候,从来就没有用过cookie,因为我总觉得这个东西没有session好用)
cookie是用来保存客户资料的好方法,与同样可以用来保存客户资料的session不同的是,session是把资料保存在服务器端,而cookie是把资料保存在客户端,我们平常接触的最多的cookie应用应该就是论坛的信息保存了,当大家在登陆一个自己喜欢的论坛的时候,通常都会有类似于“是否保存您的登陆信息”这样的选择,如果选了这个,那下次再登陆这个论坛的时候,就不用费力填写登陆表单,而是可以直接就登陆。
在asp.net中,使用cookie的过程大致如下:建立一个Httpcookie的实例,然后给它赋值,最后将这个保存了资料的实例加入到HttpResponse的cookies集合中,这样就完成了cookie的前期设置,要使用cookie的时候,需要从HttpRequest的cookies集合中取出需要的cookie,然后将它赋给一个Httpcookie的实例,然后使用它……总之具体的过程就是:生产,保存,使用(果然很麻烦啊)下面分过程来说好了。
生产
//创建一个Httpcookie的实例
HttpCookie co=new HttpCookie("gundam");
//往实例中添加资料,其中第一个string是键值,起标示作用,就像仓库里放了一堆箱子,每个箱子都有一个自己的编号,第二个string是相对应的值,就好比是箱子里存放的东西
co.Values.Add("GP-01_fb ","《机动战士高达0083-星屑的回忆》初登场");
co.Values.Add("sazabi","《机动战士高达-夏亚的反击》初登场");
保存
//Expires属性用来设置cookie的生命时间,就是设定这个cookie可以保持多久,大家在论坛里可以看到,登陆的时候选择保存资料有很多选项,比如“保存一个月”、“保存一年”等。用到了DateTime和TimeSpan来组合产生一个时间段,关于这两个的详细信息,可以查阅.NET Framewokr SDK 文档
DateTime dt=DateTime.Now;
TimeSpan ts=new TimeSpan(0,0,2,0);
co.Expires=dt.Add(ts);
//将实例加入到HttpResponse的cookies集合中,以便以后使用
Response.AppendCookie(co);
使用
//下面是一个比较常用的使用cookie的方法,先检查是否存在cookie,若是有,就把值取出来,否则就……
if(Request.Cookies["gundam"]==null)
{
lab.Text="none";
}
else
{
// 像这样来获得保存的cookie,并用以前设置的键来获得需要的值
HttpCookie co2=Request.Cookies["gundam"];
lab.Text=co2.Values["sazabi"].ToString();
}

posted on 2006-06-26 13:57  Notus|南色的风  阅读(252)  评论(0编辑  收藏  举报