l Cookie的作用
l Cookie的写入
l Cookie的读取
l Cookie 的删除
l Cookie的不准确使用
l Cookie的注意事项
l Cookie的保存路径
1 cookie的作用
Cookie就是保存在客户端的一个文本文件。它主要记录一些用户的基础信息,这些基础信息用于再次请求服务器的时候使用。至于怎么样使用cookie处理用户的信息就要看我们的了。
2 COOKIE的写入
NET下有2种写入方法:
A 使用Response.Cookies写入
例如
Response.Cookies[“userinfo”][“name”]=”张三”;
Response.Cookies["userinfo"].Expires=DateTime.Now.AddDays(1d);
B 使用HttpCookie对象写入
例如:
HttpCookie hc = new HttpCookie("userinfo");
hc[“name”]=”张三”;
hc.Expires = DateTime.Now.AddDays(1d);
Response.Cookies.Add(hc);
3 Cookie的读取
//检测COOKIE是否存在
if (Request.Cookies["userinfo"] != null)
{
//检测COOKIE值是否存在
if (Request.Cookies["userinfo"]["name"]!=null )
{
string username = Request.Cookies["userinfo"]["name"].ToString();
}
}
4 COOKIE的删除
if (Request.Cookies["userinfo"] != null)
{
HttpCookie hc = new HttpCookie("userinfo");
hc.Expires = DateTime.Now.AddDays(-1d);
Response.Cookies.Add(hc);
}
5 Cookie的不准确使用
一个COOKIE中可以有很多的键值对的,不必要每次都重建一个COOKIE。
EG private void CreateCookie(string name, string value, int days)
{
HttpCookie cookie = new HttpCookie(name, value);
cookie.Expires = DateTime.Now.AddDays(days);
Context.Response.SetCookie(cookie);
}
写了这样一个方法,结果每次调用一次,相当于建立了很多的COOKIE都放在一个里面了
如下图
正确的写法截图
6 cookie的注意事项
A 默认情况下,Cookie 由位于同一域中的所有页面共享,但可以通过设置 Cookie 的 Path 属性将 Cookie 限制在网站中的特定子文件夹。
B 若要允许应用程序的所有文件夹中的所有页面都检索一个 Cookie,请从应用程序根文件夹中的页面设置该 Cookie,但不要设置 Path 属性。
//前段时间做的整合用户,我们将论坛还有其他的一些用户全部整合到一起,论坛是用DISCUZ!nt 的,设置的是虚拟目录,是一个2级目录,这样的话在IE下是可以通过论坛退出的,但是在MAXTHON下 如果通过我们整合后的页面登陆上来,在论坛就退不出来,究其原因就是我们的写COOKIE地址是在跟目录下的,会有继承关系的。子目录没有权限设置根目录的COOKIE过期时间。
奇怪的是IE下这么可以呢,估计是2者解析不同吧。
C 如果不指定该 Cookie 的过期限制,则该 Cookie 将不会保留在客户端计算机上,当用户会话到期时该 Cookie 即到期。
D Cookie 仅能存储 String 类型的值。
E 浏览器只能将数据发送回最初创建该 Cookie 的服务器。但是,怀有恶意的用户可以访问 Cookie 并读取其中的内容。不要在 Cookie 中存储敏感信息(如用户名或密码)。而应该存储可用来在服务器上查找敏感信息的标记。此外,Cookie 能够被篡改,因此应采取与防止跨站点脚本攻击相同的措施来处理 Cookie 中的任何数据。
7COOKIE 的保存路径
C:/Documents and Settings/Administrator/Cookies 这个是可以改变的啦。
8 查看COOKIE的一个工具
IECOOKIESVIEW