在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Cookie 最早出现是在Netscape Navigator 2.0 中。后来 ASP 也引入了这个技术,它的作用是与 Session 对象相结合来识别用户。每当用户开始连接站点时,系统将自动在内存块中创建一个用户有关的会话状态,同时创建一个用户的 ID 存放在浏览器端,与当前的用户惟一地联系起来。这样,服务器保存了 Session,浏览器保存了 Cookie(用户的 ID)。当下一次用户发出请求时,请求的用户将被要求提交用户的 ID,两者对照以正确地还原原来的会话状态。这就是在无状态协议的 HTTP 条件下保持用户标志的方法。 //创建一个 HttpCookie 对象 HttpCookie cookie = new HttpCookie("乐猪网"); //设定此 Cookie 值 cookie.Value = "编程入门网站"; //加入此 Cookie Response.Cookies.Add(cookie); Cookie 有临时的,也有永远的。永久的 Cookie 以文件形式存储在计算机上,关闭 Internet Explorer 时仍然保留在计算机上。再次访问该站点时,创建该 Cookie 的网站可以读取。在具体的编程时候,是在写入此 Cookie 的时候,设定 Cookie 的生命周期,其代码如下: DateTime dtNow = DateTime.Now; TimeSpan tsMinute = new TimeSpan(0, 1, 0, 0); cookie.Expires = dtNow + tsMinute; Response.Cookies.Add(cookie); 以上代码是设定新产生的 Cookie 的生命期为一个小时,可以通过修改 TimeSpan 的属性来设定 Cookie 具体的生命期。如果不设定时间,默认时间为 20 分钟。 HttpCookie cookie = Request.Cookies["Cookie 的名称"]; 如果想将读出的 Cookie 显示出来时,可以使用以下语句: Response.Write(cookie.Value.ToString()); Cookie 是保存在客户端的字符串,它会影响用户的行为,但又不受用户的直接管理,虽然它只是一种标志(字母数字字符串)而不是程序,不可能用它来收集用户的信息,破坏用户的隐私。但有的用户仍然不放心,也可能是不愿意别人占用自己的空间,相当一部分用户在浏览器中禁止使用 Cookie。这就给识别用户带来了困难。 <sessionState cookieless="useUri" /> 或 <sessionState cookieless="AutoDetect" /> 配置时,当编写到“cookieless=”语句时,将弹出 AutoDetect、useCookies、useDeviceProfile、useUri 四种选择。选择 AutoDetect 或 useUri 均可在无 Cookies 的条件下识别用户。 下面举一个完整的小例子吧,请看下面的源代码: HttpCookie ck = Request.Cookies["cktest"]; if (ck == null) { ck = new HttpCookie("cktest"); ck.Value = "123"; ck.Expires = DateTime.Now.AddSeconds(20);//20秒的有效期 Response.Cookies.Add(ck); Response.Write("new ck"); } else { Response.Write(ck.Value.ToString()); } //在一个Cookie中储存多个信息 HttpCookie cookie = new HttpCookie("cktest"); cookie.Values.Add("v1", "1"); cookie.Values.Add("v2", "2"); cookie.Values.Add("v3", "3"); Response.AppendCookie(cookie); HttpCookie cookies = Request.Cookies["cktest"]; string value1 = cookies.Values["v1"]; string value2 = cookies.Values["v2"]; Response.Write(value1 + value2); 以上就是关于ASP.NET中Cookie状态的说明与用法,对于Cookie 使用的利与弊说法不一,我们要合理使用Cookie希望本文对大家学习Cookie有所帮助。 |
请发表评论