asp_net中的cookie

表单是和页面相关的。只有表单提交了之后,服务器才能得到这些数据。但有时候,我们想要在一个站点的多个页面中使用一些和用户相关的信息。表单就不适用了。这时候可以用cookie,cookie是和站点相关的,每一次向服务器发送请求的时候,除了发关表单数据外,都会强制性的带上cookie信息(除非浏览器中禁用了cookie)。

注意,是每一次都会,哪怕是请求的jpg,css,js等外部文件的时候。

 

Cookie可以保存哪些数据?

       只可以保存String类型。

 

Asp.net中怎样使用COOKIE?

用HttpCookie类,如:HttpCookie cook = new HttpCookie("uInfo", strName);

然后将它加入到cookie的集合中(发送到浏览器中去)

Response.Cookies.Add(cook);

但是这样还只是放在了缓存中,浏览器一关,这个cookie就没有了。如果要它保存到硬盘里面去。就要设置它的失效时间。

失效时间的设置是通过HttpCookie对象的Expiress属性,它的类型为DataTime。设置它的时候给一个时间就可了

如:设置失效时间为从此刻开始的2天后。

cook.Expires = DateTime.Now.AddDays(2);//现在的时间加上两天。

 

如果要删除硬盘中保留的COOKIE要怎么办呢?

设置失效时间为负数就可以了,如:

cook.Expires = DateTime.Now.AddDays(-1);

浏览器收到失效时间为负数的cookie后就会自动删除硬盘中保留的数据。

 

Expiress是一个不可读的属性,那么它为什么不可读呢?

       因为在浏览器发送数据报文到服务器端的时候,没有发送这个数据过去。所以服务器端不可以通过变量来获得cook.Expriess的值。

       如果这个时候恰好有一个需求,让我们在登录成功后在页面上输出cookie的失效时间,怎么办?

       可以把失效时间也设置成一个cookie,然后发送到服务器端去。这样就可了。

如:在登录的时候写上:HttpCookie cookietime=new HttpCookie("time",失效时间的值)

posted @ 2012-04-29 12:14  伯箫  阅读(183)  评论(0编辑  收藏  举报