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",失效时间的值)