Welcome 微信登录

首页 / 网页编程 / ASP.NET / 宝刀不老:Cookie

宝刀不老:Cookie2011-02-11在新技术大军横空出世年代, Cookie 似乎已被遗忘. 但网页设计中依然少不了它的身影, 这里就本人多年对它的应用做以总结, 可能不是最全面的, 但一定是最实用的.

Cookie早已不是不可替代, 不是必不可少, 也因此失去了很多色彩, 很多人把它形容为一鸡肋,食之无味, 弃之可惜. 但若都以此评判, 似乎我们很多技术都很无味, 而似乎都不可缺少. 以我看来, 技术最好少做对比, 选择多了, 困惑也就多了, 心不静, 看什么都是有用而无味. 我却觉得很多技术自己用的得心应手了自然就有了味道.

总结大家对 Cookie "食之无味" 大概有以下几个原因.

(1). 不安全, 这是最直接的一个原因, 因为 Cookie 是保存在客户端计算机上的, 因此很容易被修改, 从而导致访问服务器时应用程序的执行失败或者其他安全问题.

(2). 严重限制传送内容的大小, 这是最实现的一个原因, 大多数浏览器都限制 Cookie 的大小, 一般情况下都不能超过 4096 个字节, 因此传送的内容有限.

(3). 用户可控制 Cookie 的开启与停用: 这是最无奈的一个原因, 当用户设置其浏览器停止接收 Cookie时, 如此, 它便失去了作用.

(4). .......

虽已为鸡肋,但弃之总会可惜, 原因也无非下列几个原由.

(1). 使用简单: 因为使用太简单了, 所以它能活至今日, 虽有不少人一边天天抱怨, 一边却又偷偷地用它. Cookie 的简单是源于它是最简单的 索引键值 的文本结构, 读取与设置数据非常方便.

(2). 不占用任何服务器资源: Cookie 的生成原理是由服务器创建后随网页一起输入到客户端, 并且在驻留在客户端计算机上, 因此不需要占用服务器的任何资源.

(3). 有效期限可随意设置: 随心所欲地设置有效期限使它相当好用, 可以设置当浏览器结束访问时, Cookie 随之消失, 或者设置某个特点的到期时间, 甚至是永久保存在计算机上.

(4). .......

OK, 是福是祸, 人各有志, 暂且放下不谈. 这里我总结出了 Cookie 在网页设计中各个方面所起的作用和使用方法. 还是那句话, 可能不是最全的, 但一定是最实用的. 与大家分享. 好, 这里就从最简单的使用开始.

1. Cookie 可以存储哪些值

在 Cookie 中只能存储个人可识别信息. 个人可识别信息是指可以用来识别或联系用户的信息. 例如用户的姓名, 电子邮件, 家庭住址等. 必须强调的是, 这些可识别信息必须是非机密或重要信息.

2. 使用 Cookie 对象保存和读取客户端信息.

要存储一个 Cookie 变量, 可以通过 Response 对象的 Cookie 集合, 语法如下:

Response.Cookies[varName].Value=值;

其中, varName 为变量名.

要取回 Cookie, 可以使用 Request 对象的 Cookie 集合, 并将指定的 Cookie 集合返回, 语法如下 :

变量名=Request.Cookies[varName].Value;

以例为例: 用 Cookie 操作客户端 IP. 代码如下:

使用Cookie保存和读取客户端信息
//保存客户端信息
string UserIP = Request.UserHostAddress.ToString();//获取客户端的IP地址
Response.Cookies["IP"].Value = UserIP;//将客户端的IP地址保存在Cookies对象中
Response.Cookies["IP"].Expires = DateTime.MaxValue;//设计Cookies的失效期
//读取
Response.Write(Request.Cookies["IP"].Value);//从Cookies中读取客户端IP地址值