今天的内容还得接着昨天的文章继续讲授。上篇文章,我遇到了如何进行同名Cookie值的设置。在上1篇文章中,我设置的Cookie名字是1定的,写死了。今天再次运行项目时发现报错了,单步运行程序发现Cookie的名字居然变化了,前面的文章是把name写死了,明显不行,需要动态获得Cookie的name和value。在开始解决问题之前,我们还是先简单了解1下Cookie的基础知识。
Cookie是asp.net 保存会话数据的两种技术之1,另外一种技术是Session,在此暂不讲述,以后再补充。Cookie是客户端技术,服务器把每一个用户的数据以cookie的情势写给用户各自的阅读器。当用户使用阅读器再去访问服务器中的web资源时,就会带着各自的数据去。这样,web资源处理的就是用户各自的数据了。
Cookie是1种在客户端保持HTTP状态信息的技术,它好比商场发放的优惠卡。
Cookie是在阅读器访问WEB服务器的某个资源时,由WEB服务器在HTTP响应消息头中附带传送给阅读器的1片数据,WEB服务器传送给各个客户端阅读器的数据是可以各不
相同的。1旦WEB阅读器保存了某个Cookie,那末它在以后每次访问该WEB服务器时,都应在HTTP要求头中将这个Cookie回传给WEB服务器。
WEB服务器通过在HTTP响应消息中增加Set-Cookie响应头字段将Cookie信息发送给阅读器,阅读器则通过在HTTP要求消息中增加Cookie要求头字段将Cookie回传给WEB服务器
1个Cookie只能标识1种信息,它最少含有1个标识该信息的名称(NAME)和设置值(VALUE)。
1个WEB站点可以给1个WEB阅读器发送多个Cookie,1个WEB阅读器也能够存储多个WEB站点提供的Cookie。
阅读器1般只允许寄存300个Cookie,每一个站点最多寄存20个Cookie,每一个Cookie的大小限制为4KB
如果创建了1个cookie,并将他发送到阅读器,默许情况下它是1个会话级别的cookie(即存储在阅读器的内存中),用户退出阅读器以后即被删除。若希望阅读器将该cookie存储在磁盘上,则需要使用maxAge,并给出1个以秒为单位的时间。将最大时效设为0则是命令阅读器删除该cookie。
注意,删除cookie时,path必须1致,否则不会删除
基础的Cookie 知识大概就是这样,如果想了解具体的请参考:http://blog.sina.com.cn/s/blog_68d733750100kxvh.html
下面就接着文章开始提出的问题接着讲授。在这里,我想要获得到要求头或响应头的所有Cookie信息,包括它的name和value。我采取了下面的方法。
方法1. GetCookies()
方法2 Context.Cookies
测试报错:Cookie不存在Name属性,可Cookie类下明明是有Name属性的,不知为什么,此方法行不通,暂时放弃。
方法3.GetResponseHeader()
方法4.ref援用
通过上面4种方法的介绍,我们也能够看出,第4种方法最简单,如果你对利用比较了解,相信此种方法也比较好理解。经过连续几个小时的忙活,终究完成任务。
上面只是就自己实际遇到的问题进行了说明,只是对Cookie的知识进行了简单介绍,其中还有Session的和URL和Uri的区分等知识没有说明,下面的文章也会就前面的几个问题和大家共同学习,欢迎指点,共同进步。