• asp.net 操作Cookie以及优缺点


    前言

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

    一. 什么是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来读取。

  • 相关阅读:
    静态代理和动态代理
    Tomcat的作用思考及NIO的应用(要区分Java NIO和操作系统的NIO模型)
    破坏双亲委托机制的一些情况---Tomcat和JDBC,破坏后的安全问题
    springboot cache---本地缓存的使用
    springboot--异步执行的方法及定时执行的方法
    springboot--事务的使用
    数据结构--堆排序
    数据结构--树的非递归遍历
    最长公共子串的长度和构造
    2015 小结及其2016计划
  • 原文地址:https://www.cnblogs.com/bkyan/p/y1.html
Copyright © 2020-2023  润新知