关于Cookies与Session系列一_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 关于Cookies与Session系列一

关于Cookies与Session系列一

 2014/5/10 3:04:34  星星不说话  博客园  我要评论(0)
  • 摘要:这两个东西,最近项目操作的比较少,不过这两个在Web项目开发中一直都扮演着很重要的角色,有时有些细节会不小心就遗忘掉。Cookies的概述Cookies是由服务器端生成,发送给客户端,用来保存一些数据文本文件。在用户进行网页浏览时,这家伙会在客户端与服务器之前传递,常用作身份的验证、用户会话识别或存储小型数据。由于cookies是保存在客户端,那么就意味着用户可以修改和读取,因此有人利用木马、病毒窃取用户Cookies并获得用户信息,所以,作为开发人员
  • 标签:Cookie

这两个东西,最近项目操作的比较少,不过这两个在Web项目开发中一直都扮演着很重要的角色,有时有些细节会不小心就遗忘掉。

                    Cookies  的概述

Cookies是由服务器端生成,发送给客户端,用来保存一些数据文本文件。在用户进行网页浏览时,这家伙会在客户端与服务器之前传递,常用作身份的验证、用户会话识别或存储小型数据。由于cookies是保存在客户端,那么就意味着用户可以修改和读取,因此有人利用木马、病毒窃取用户Cookies并获得用户信息,所以,作为开发人员,Cookies不适合保存重要或者涉及隐私的内容,除非你加密。(当然,作为用户,定期清理这些垃圾是一个好习惯~)

 

class="Apple-converted-space">                    Cookies 的限制

大多数浏览器支持最大为4096个字节的Cookie,所以Cookie不适合保存大数据。 浏览器也会限制同一个站点下的Cookies数量,一般为20个,超出这个数量的话,旧的Cookie将会被丢弃。 用户可以禁用Cookie,如果禁用后会影响Session的信息保存(相关问题在后续会讲到)

                    Cookies  的操作

由System.Web.HttpCookie中可以看到.net 提供的Cookie的属性及方法

logs_code_hide('27b1aa83-5d0f-466b-bf0a-84e3862dfc86',event)" src="/Upload/Images/2014051003/2B1B950FA3DF188F.gif" alt="" />
// 摘要:
    //     提供创建和操作各 HTTP Cookie 的类型安全方法。
    public sealed class HttpCookie
    {
        // 摘要:
        //     创建并命名新的 Cookie。
        //
        // 参数:
        //   name:
        //     新 Cookie 的名称。
        public HttpCookie(string name);
        //
        // 摘要:
        //     创建和命名新的 Cookie,并为其赋值。
        //
        // 参数:
        //   name:
        //     新 Cookie 的名称。
        //
        //   value:
        //     新 Cookie 的值。
        public HttpCookie(string name, string value);

        // 摘要:
        //     获取或设置将此 Cookie 与其关联的域。
        //
        // 返回结果:
        //     要将此 Cookie 与其关联的域名。默认值为当前域。
        public string Domain { get; set; }
        //
        // 摘要:
        //     获取或设置此 Cookie 的过期日期和时间。
        //
        // 返回结果:
        //     此 Cookie 的过期时间(在客户端)。
        public DateTime Expires { get; set; }
        //
        // 摘要:
        //     获取一个值,通过该值指示 Cookie 是否具有子键。
        //
        // 返回结果:
        //     如果 Cookie 具有子键,则为 true;否则为 false。默认为 false。
        public bool HasKeys { get; }
        //
        // 摘要:
        //     获取或设置一个值,该值指定 Cookie 是否可通过客户端脚本访问。
        //
        // 返回结果:
        //     如果 Cookie 具有 HttpOnly 属性且不能通过客户端脚本访问,则为 true;否则为 false。默认值为 false。
        public bool HttpOnly { get; set; }
        //
        // 摘要:
        //     获取或设置 Cookie 的名称。
        //
        // 返回结果:
        //     除非构造函数另外指定,否则默认值为 null 引用(在 Visual Basic 中为 Nothing)。
        public string Name { get; set; }
        //
        // 摘要:
        //     获取或设置要与当前 Cookie 一起传输的虚拟路径。
        //
        // 返回结果:
        //     要与此 Cookie 一起传输的虚拟路径。默认值为当前请求的路径。
        public string Path { get; set; }
        //
        // 摘要:
        //     获取或设置一个值,该值指示是否使用安全套接字层 (SSL)(即仅通过 HTTPS)传输 Cookie。
        //
        // 返回结果:
        //     如果通过 SSL 连接 (HTTPS) 传输 Cookie,则为 true;否则为 false。默认为 false。
        public bool Secure { get; set; }
        //
        // 摘要:
        //     获取或设置单个 Cookie 值。
        //
        // 返回结果:
        //     Cookie 的值。默认值为 null 引用(在 Visual Basic 中为 Nothing)。
        public string Value { get; set; }
        //
        // 摘要:
        //     获取单个 Cookie 对象所包含的键值对的集合。
        //
        // 返回结果:
        //     Cookie 值的集合。
        public NameValueCollection Values { get; }

        // 摘要:
        //     获取 System.Web.HttpCookie.Values 属性的快捷方式。此属性是为了与以前的 Active Server Pages (ASP)
        //     版本兼容而提供的。
        //
        // 参数:
        //   key:
        //     Cookie 值的键(索引)。
        //
        // 返回结果:
        //     Cookie 值。
        public string this[string key] { get; set; }
System.Web.HttpCookie(System.Web.dll, v4.0.0.0)

简单的操作如下

public ActionResult Index()
        {  
            var cookie = new HttpCookie("MyCookieName", "string value");
            //简单的Cookie
            Response.Cookies.Add(cookie); 

            var testCookies = new HttpCookie("MyCookiesInfo");
            //默认属性
            testCookies.Value = "丰富的Cookies";
            //TestCookies.Domain = "testlocalhost";默认为当前网站跟域,如localhost,但如果你想设置域为testlocalhost,嘻嘻,自己试试
            testCookies.Name = "123456"; //这里重置了该Cookies的名称,改为123456
            //额外的属性
            testCookies["TestAttr1"] = "再来个属性";
            testCookies["TestAttr2"] = "再来个属性2";
            //设置超时时间
            testCookies.Expires = DateTime.Now.AddHours(1);
            Response.Cookies.Add(testCookies);
            return View();
        }

        public ActionResult About()
        {
            string test = Request.Cookies["MyCookieName"].Value;
            string test2 = Request.Cookies["123456"].Value;
            string test3 = Request.Cookies["123456"]["TestAttr1"];
            Response.Write(test + "|" + test2 + "|" + test3 + "|" + Request.Cookies["123456"].Expires.ToString());
            return View();
        }
 
About页面输出的结果是 string value|丰富的Cookies&TestAttr1=再来个属性&TestAttr2=再来个属性2|再来个属性|0001/1/1 0:00:00 ­­
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" alt="" />

这里可以看到一个cookie操作的特性
当浏览器向服务器发送 Cookie 信息时,并不包括有效期信息。(Cookie 的 Expires 属性始终返回值为 0 的日期时间值。)
即服务器不能获取cookie的有效时间来判断cookie是否已经过期。
那我们能不能改变cookie的有效时间让它提前过期呢?我们修改About的代码如下
           string test = Request.Cookies["MyCookieName"].Value;

            Request.Cookies["MyCookieName"].Value = "我要修改属性啦!";
            Response.Cookies["MyCookieName"].Expires = DateTime.Now.AddDays(-1);


            string test2 = Request.Cookies["123456"].Value;
            string test3 = Request.Cookies["123456"]["TestAttr1"];
          
            Request.Cookies["123456"].Value = "我要修改属性啦!";

 


在执行Index时,cookie信息如下

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" alt="" />

到About页面时

只剩下123456这个cookie了,因为我们设置MyCookieName的超时时间比当前时间小,因此客户端自动将这个cookie删除了。

但请注意,123456的cookie值没有改变!!为什么??别急,我们先来看看我们在操作上述代码时,客户端与服务端是怎么沟通的?对,Http协议

Http协议的详细内容就不在这啰嗦了,请去找度娘(屌丝程序员的最爱)。研究协议的最好方法还是抓包,抓包工具很多,以后应该会针对http协议有一篇总结,到时再详细说吧。

以下是请求Index时的一个抓包的部分截图

SWTC+8XXj9qOPazcoM+vzN0iFhygAz6vCO+OJn8gJ4f34G3RXjv8/HlDu1byy1x8KYdsLo9GFuB8msnz4m7TgswTpSCSwO1TYULb0DTPWHmTjyDEzR//Iq2Vm6p0nKxl9hCsw9CH6GC0g3AK+ZcQs8YQsWrR0kXtDJ4nzpBGdhMiroeQeGxQtZtIs8WRug26o8BAFzLlUeD9seH+UDbor+p/LhVjCmWEbwa8yJkN6/UiBp/TIJhyd67wspZXc0U75XmQHI+PVfRleDMxr7uOegdM2qKHCQxSAR40cyrlDr/DuFUxb+TePCg8hlnBhFHt8ViE5alhvNH3zFKbfaPSoIcxe8FdJL+83pX+0v9+vXh59JGNxn/nLzr+FzSn6EFyyQSo8RAF//sghzp94hbfy7z1Q4SHEEi6MYiHEk6HCQxS4+rgKUUCFhxBLuAWU/3VJ9JuRIb778NcoUCKE+HCo8BAFrj6uQhRQ4SHEElpMma83vTyJ/5qUyIf1yUTlk3TviIWoKiPG87NbVZUlR4TGoxFJgcpHLylHrnpTxOHk0HOU7Kw9wA+OCg9R4OrjKkQBFR5CLMEH1+YoxabvPm0Hti9nwhk/FzI7codeOyIvA6AwuSnJkiDv6vBjaZRpyHCZXq+ACg9R4OrjKkQBFR5CLOH84DVX2Exx8lBXtxMKD/P04PT5iMnCI9Nx2GXYa6Iqa3K+aCo8zkGFhyhw9XEVooAKDyGWcAuoqAzg9YAn6u6Ljb4LbBuzkUJkuV1hoYKRlO765Kaev6/zuzVxhs+XjJ5c89JEyLZy+1x56B7syHcQ7pq3MFzt3kN+TrjDz4oKD1Hg6uMqRAEVHkIsocUUuXEuvzxF99fq6ORCH11hoRq3YNwjF+7kfd1P3CtDbyO1zNDRbZ6MnpwI8TBZNkCD8Dz41fNuwymUKoRoXF+B9I/ghg7HfTLmCw+zglclxLf4PxIWy2nn5oQ44alNiCEqPIRYgomsLSAfm5GF6Mo4tJYfqxf67vBWGlkouTTsyG+iW3dzhX6a7r23G7r+DscdtjMTycjJWEk10yX6yBeND00G5atdmtSLMFl43JY4+ngC548o3q4oPISYRoWHEEswkQWTcyljly7fGyI/dORtqfDglr1vUeWQsca7R9aG0ymZ5e1oI6JRuJx7WHWVfORrxUePBk2udnvkl+4FrzprCo/zudyB16SdGxUe4vFR4SHEEkxkwUqglLEjC/6Cuyeuy8OxTNvc+SKFuat8JC91iRwj1oi3u/uWY+gkH706ET6FyPk5V/2j5FqR0cmgybORn9crsL7w6DOIl3Ah7M5tGmfyA4kJ2rmJQqsPci/pN8KfRa+8x7ENhxOiR4WHEEtoMeUTsnlUwr9HTHo3gzbhRu+L3hP4cvGW4dsHWjAekqllJjschViDkmhG0XDwNc2Hi4ReTjyB84Wm8q76R3zB+YyiuWRWm8xrKH9uFhcevby125YkhbD7QaFXEBO0c8PjKnqaiUOjfNCUeGVUeAixhFtAkQtcJCTA2xtU4G+Eg27MdTnOyYPqLTmBXzQt4xLOKzzywp5orIMDiTnauYleEo1I0usbO1B5e/+qg8qbcoFAqPAQYgkmsnzKLeVh844YPjIvFOjAEZ77DaJX5EK0kkt4xMKD2Fw1kJijnRuf/eGriEj8+wYaJ4XH3IkXr4MKDyGWcHUoCyGeh8X/qtXCwuOuQjFHOze+AIgqBy6BH2HhkWwL0VDhIcQSrg5lIcTzUCo8/gRf8FZfWRO6kgAAAABJRU5ErkJggg==" alt="" />

我们可以看到,服务端在HTTP的响应头中通过Set-Cookie】的响应头来进行Cookie的设置
那么我们在访问About时,抓包截图如下


可以看到产生了一个Set-Cookie】的响应头,将MyCookieName的Expires时间改变了(比较123456的Expires即可知MyCookieNameExpires变得比当前时间小,故caozuo.html" target="_blank">删除操作是客户端自己完成的),因此,客户端就只剩下123456这个cookie了,那为什么123456的值没有改变呢?怎么改变呢?我们再来修改About的代码,增加如下代码
          var temp = new HttpCookie("123456");
            temp = Request.Cookies["123456"];
            temp["TestAttr1"] = "真的要改变属性值啦!";
            Response.Cookies.Add(temp);

然后重新由Index页面跳转到About页面

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" alt="" />

抓包截图为

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" alt="" />

没错,这样才会产生一个Set-Cookie】的响应头
因此操作cookie的另外一个特性为
服务端不能直接改变客户端的cookie值,包括超时时间也不能直接修改,需要重新建立一个对应名称的Cookie,然后重新对该Cookie下的的属性赋值,再添加到httpContext中,
超时时间也一样,只能重写
虽然修改不了Cookie,但可以取得,那服务端是如何拿到客户端的Cookie信息呢?
细心的朋友发现了刚才抓包截图中左侧为客户端请求头,很明显客户端(浏览器)在每次请求时会把cookie信息装进请求头中,这里还需要注意一点,我们保存在浏览器上的cookie非常多,难道每次请求都会把所有的cookie放到请求头去么?答案是否定的。
浏览器会检查当前要请求的域名以及目录, 只要这二项目与Cookie对应的Domain和Path匹配,才会发送。对于Domain则是按照尾部匹配的原则进行的。
 
最后补充一下和Cookie相关的一些操作
校验浏览器是否支持Cookies,不支持时可以提示用户
    if (Request.Browser.Cookies)
        {
            //浏览器支持cookies,继续coding......
        }
        else
        {
            //浏览器不支持cookies,那么弹出提示信息或者重定向到新页面进行处理
        }    

Js也能操作Cookies的,简单的例子如下

<script type="text/javascript">
    function WriteCookie() {
        var cookie = "cookie_js=22222222; path=/";
        document.cookie = cookie;
    }    
   function ReadCookie() {
        alert(document.cookie);
    }   
</script>

读取的效果为

如果想对读取结果进行解析,请自行处理一下。

写的效果为



在前面的代码中,如果你设置 TestCookies.Domain = "testlocalhost" 该cookie将不会被创建,大家能说说是什么原因么?


 

 

上一篇: excel快递单号查询工具以及源码 下一篇: 没有下一篇了!
发表评论
用户名: 匿名