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 2007-05-06 11:43  站在天空下的猪  阅读(777)  评论(0编辑  收藏  举报