时时彩一天赚200元方法 www.y2at3.com.cn IT职业教育

华中地区北大青鸟校区IT集训营

027-87807717

时时彩一天赚200元方法 > 热门IT技术教程 > .Net技术教程 > > 在.net中cookies和Session具有哪些特性

在.net中cookies和Session具有哪些特性

时间:2012-01-14 10:42 来源:北大青鸟武汉宏鹏鲁广校区作者:admin
导读:武汉北大青鸟鲁广校区.NET技术 1. Cookie 的限制 大多数浏览器支持大为 4096 字节的 Cookie。 浏览器还限制站点可以在用户计算机上存储的 Cookie 的数量。大多数浏览器只允许每个站点存

    武汉时时彩一天赚200元方法鲁广校区.NET技术  
    1.Cookie 的限制

  大多数浏览器支持 4096 字节的 Cookie。

  浏览器还限制站点可以在用户计算机上存储的 Cookie 的数量。大多数浏览器只允许每个站点存储 20 个 Cookie;注意这里的20个是指主键值,也就是20条Cookies记录,但是每个Cookies记录还可以包含若干子键,下面会详细解释。如果试图存储更多 Cookie,则旧的 Cookie 便会被丢弃。有些浏览器还会对它们将接受的来自所有站点的 Cookie 总数作出一定限制,通常为 300 个。

  2.Cookies的存储格式

  Cookies可以包含一个主键, 主键再包含子键。比如asp.net中获取Cookies的格式是:

  Request.Cookies[key][subkey].ToString();

  其中的key就是主键,subkey就是主键关联的子键。

  (1)本地磁盘存储格式:

  My.Common.TestCookieInfo

  Pkid=999&TestValue=aaabbbcccdddeee

  localhost/

  1536

  3059603968

  30021392

  2348960464

  30021191

  *

  其中的Pkid=999&TestValue=aaabbbcccdddeee 是Cookies的值,由于使用了subkey=subvalue的格式, 所以此Cookies是包含子键的。

  (2)Javascript中的Cookie格式

  在Javascript中给的Cookie是一个字符串,通过document.cookies获取。字符格式如下:

  My.Common.SubKey=Pkid=999&TestValue=aaabbbcccdddeee; SingleKey=SingleKeyValue

  上面的字符串包含了两个Cookies,一个是不包含子键的SingleKey, 一个是包含pkid和TextValue两个子键的My.Common.SubKey,两个Cookie通过“;”分割。

  (3)Asp.Net中的Cookies格式

  和所有的服务器端语言一样,Asp.Net中使用集合类保存Cookies集合:

  public sealed class HttpCookieCollection : NameObjectCollectionBase

  {...}

  通过HttpResquest和HttpResponse对象的Cookies属性,可以获取和写入当前页面的Cookies。

  3.Cookies的内容编码格式

  Cookies的值中可以保存除了“;”以外的标点符号。但是不能保存汉字。保存汉字会出现乱码。

  所以对于Cookies中的内容要进行统一的编码和解码。为了在浏览器端和服务器端都能够进行解码和编码, 所以要统一使用UTF编码格式。

  主要是因为javascript中只能使用UTF编码格式。

  4.Cookies的Path属性

  Cookies的Path属性表示当前的Cookies可以作用在网站的那个路径下。

  比如下面的两个同名的Cookies:

  

 

  允许存在两个同名但是Path不同的Cookies。

  无论是服务器端还是客户端,在获取时优先获取本页路径下面的Cookies。

  也就是说如果在、/chapter10/路径下面的页面, 获取testKey这个Cookies的值,则只能获取到testValue222222这个值。

  5.Cookies的过期时间

  如果保存Cookies时未设置过期时间, 则Cookies的过期时间为“当前浏览器进程有效”,即和Session一样关闭浏览器后则消失。在asp.net中还可以通过设置HttpCookie对象的过期时间为DateTime.MinValue来指定此Cookies为跟随浏览器生效。(这句话来之不易啊,在脑袋等人的帮助下才查到的。)

  如果设置了过期时间并且大于当前时间,则会保存Cookies值。

  如果设置了过期时间但是小于等于当前时间,则清除Cookies值。

  6.Cookies与Session

  有时我们会忽略Cookies与Session的关系。但是两者是密不可分的。

  Session的标示:SessionID是通常保存在Cookies中的(也可以保存在URL中)。对于Asp.Net而言,SessionID保存在键值为“ASP.NET_SessionId”的Cookies中,如图:

  

 

  因为Cookies的存储数量是有限制的,所以我们的系统在保存Cookies的时候一定要注意防止冲掉这一个关键的Cookies。在下文介绍的理想实践-以强对象方式保存Cookies的代码中特意对这个Cookies做了处理。

  注意,在客户端使用javascript脚本无法获取“ASP.NET_SessionId”的Cookies, 因为此Cookies在服务器端设置了HttpOnly属性为true。

  ASP.Net中HttpCookie对象的HttpOnly 属性 指定一个Cookie 是否可通过客户端脚本访问。不能通过客户端脚本访问为 true;否则为 false。默认值为 false。此属性并不能完阻止客户端在本地获取cookies,但是可以增加通过脚本直接获取的难度。

  Microsoft Internet Explorer 版本 6 Service Pack 1 和更高版本支持 Cookie 属性 HttpOnly。

  7.Cookies加密

  在设置Cookies的属性时,有一个选项Secure用来控制Cookie的加密特性。

  如果通过 SSL 连接 (HTTPS) 传输 Cookie,则为 true;否则为 false。默认为 false。

  如果我们保存一个Cookies并设置加密,那么在非HTTPS的页面中,无论是使用javascript还是服务器端都无法获得此Cookies。但是在本地依然可以看到此Cookies的存在。

  8.Cookies与Ajax

  如果Ajax请求访问一个服务器页面,此服务器页面是可以向用户浏览器写入Cookies和Session的。

告诉我们,你现在想了解什么?

精彩专题——96%的同学看到这里都会点击下面的专题

Copyright (c) 2006-2020 武汉宏鹏教育咨询有限公司 版权所有 All Rights Reserved.

  • 人类发源地政府没文化 2019-04-19
  • 客运站卫生间脏乱不堪 当地:已进行了整改 2019-04-19
  • 特维斯:离开申花回博卡为参加世界杯 国家队已遥不可及 2019-04-19
  • 【专题】河北省纠正“四风”和作风纪律专项整治问题线索举报平台 2019-04-18
  • 人家80年前就造航母,我们现在才造航母,基础不一样。 2019-04-18
  • 央视解读不动产登记体系全面运行 房价会下跌 2019-04-18
  • 市场经济就是一种唯利是图的经济,是一种波动、走极端的经济,新时期的发展方式与结果就是如 此。那么指望市场经济来解决需要与不平衡的矛盾,对症下药了吗? 2019-04-18
  • 出租广州市番禺区大龙街东兴路476号4楼物业空置部分 2019-04-17
  • 互联网金融类案件数量增加 消费者权益保护需加快完善 2019-04-17
  • 兴业银行获第十二届人民企业社会责任奖年度企业奖 2019-04-17
  • 柬埔寨留学生在华求学记:生活多彩乐享科技便利 2019-04-16
  • 保时捷发布911 Speedster 概念车 纪念诞辰70周年 2019-04-16
  • 8旬老太遭儿子逼迫贩毒:三名儿子已被通缉 2019-04-16
  • 揭秘阿里巴巴打假特战队 2019-04-15
  • 琼结强钦青稞酒文化节明日开幕 精彩内容抢先看! 2019-04-15
  • 194| 477| 709| 393| 279| 157| 295| 578| 956| 758|