您的位置:首页 > 编程语言 > ASP

asp.net 操作Cookie以及优缺点

2016-04-14 13:29 417 查看

前言

第一次写文章,还请大家多多关照,写的不好和不对的还请大家多多指教,谢谢!

一. 什么是cookie

  Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。Cookie 包含每次用户访问站点时 Web 应用程序都可以读取的信息。

二. Cookie 的限制

  大多数浏览器支持最大为 4096 字节的 Cookie。由于这限制了 Cookie 的大小,最好用 Cookie 来存储少量数据,或者存储用户 ID 之类的标识符。

三. 操作cookie

  1 存储。

方式一:Response.Cookies["键"].value="值";

方式二:HttpCookie cookie = new HttpCookie("键","值");

cookie.Expires = DateTime.Now.AddMinutes(30); //设置过期时间,如果不设置则是关闭浏览器cookie失效。

Response.Cookies.Add(cookie);

2 读取。

方式一:if(Request.Cookies["键"]!=null)

         string str = Request.Cookies("键").Value;

方式二:if(Request.Cookies["键"]!=null){

string str=Request.Cookies.Get("键");

       }

提示:还有多值cookie读取。

3 删除cookie

HttpCookie cookie = new HttpCookie("键");
cookie.Expires=DateTime.Now.AddDays(-30); //将其有效期设置为过去的某个日期。当浏览器检查 Cookie 的有效期时,就会删除这个已过期的 Cookie。
Response.Cookies.Add(cookie);

四.Cookie 的范围.

可以通过两种方式设置 Cookie 的范围:

    1 将 Cookie 的范围限制到服务器上的某个文件夹,这允许您将 Cookie 限制到站点上的某个应用程序。

      HttpCookie appCookie = new HttpCookie("键");
      appCookie.Value = "值" ;
      appCookie.Expires = DateTime.Now.AddDays(1);
      appCookie.Path = "/fileName";
      Response.Cookies.Add(appCookie);

   注意: 在某些浏览器中,路径区分大小写。您无法控制用户如何在其浏览器中键入 URL,但如果应用程序依赖于与特定路径相关的 Cookie,请确保您创建的所有超链接中的 URL 与 Path 属性值的大小写相匹配。

    2 将范围设置为某个域,这允许您指定域中的哪些子域可以访问 Cookie。

(1)默认情况下,Cookie 与特定域关联。(例如网站:http//:www.yiming.com)

HttpCookie appCookie = new HttpCookie("键");
       appCookie.Value = "值" ;
       //appCookie.Domain ="www.yiming.com"; //默认情况下www.yiming.com
       Response.Cookies.Add(appCookie);

       (2)Domain属性创建可在多个子域间共享的 Cookie,如下面的示例所示:(多个网站可共享,如:bba.yiming.com;kks.yiming.com;doq.yiming.com等等)

       HttpCookie appCookie = new HttpCookie("键");
       appCookie.Value = "值" ;
       appCookie.Domain =".yiming.com";
       Response.Cookies.Add(appCookie);

五.优缺点。

优点:
相比Session和Application对象,使用Cookie能持久化保存用户信息。Cookie保存在客户端,而Session和Application保存在服务器端,故Cookie能长久保存。web应用程序可以通过获取客户端的Cookie来进行用户身份认证。
Asp.net包含两个Cookie集合,通过HttpRequest的Cookie集合进行访问,Cookie不是Page类的子类,所以使用方法与Session和Application不同,相比于他们Cookie的优点如下:
1.可以配置过期时间
    2.简单:Cookie是一种基于文本的轻量级结构,包括简单的键值对
    3.数据持久:因为保存到客户端
    4.无任何服务器资源:因为存储在本地客户端

缺点:

1.不要在Cookie中存储敏感信息,如用户名、密码、信用卡号等等。

2.在对cookie操作之前要对 Cookie 内容进行 HTML 编码的方法,对信息加密(尤其是存储中文时)。

3.Cookies属性不指示 Cookie 是否启用。它仅指示当前浏览器是否原本支持 Cookie。

4.Cookie存储的数据量有所限制,大多数浏览器支持的最大容量为4096字节,因此不要用Cookie来保存大量数据。

5.只要是微信打开的页面,不要在客户端使用JS或JQuery读取Cookie,必须在服务器器端使用Request.Cookie来读取。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: