欢迎来到天天文库
浏览记录
ID:20982193
大小:58.00 KB
页数:4页
时间:2018-10-18
《用asp检测浏览器是否允许cookie功能的方法》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、用ASP检测浏览器是否允许Cookie功能的方法
2、第1内容显示中用ASP检测浏览器是否允许Cookie功能的方法作 者:董云YUNDONG工作单位:黄埔海关技术处工程师通讯广州市经济技术开发区志诚大道海关大楼号码:020-82130556邮政编码:510730电子邮件:dy168163.摘要:指出用ASP检测浏览器Cookie功能的误区,说明错误的原因,并给出解决方法和源代码关键词:浏览器、Cookie、信息记录区一、前言检测浏览器是否允许Cookie功能其实并不困难。许多的文章都讨论到这个问题,但是,这些文章中往往存在着许多问
3、题,使得读者容易混淆,甚至有些文章中所给出的方法根本就是错误的。本文将一步一步地详细解释困难所在,并给出实用的ASP代码。二、问题的提出尽管现在的浏览器基本上都支持Cookie功能,但是用户可以通过设置将Cookie功能禁止,对于希望将一些信息记录到浏览器上去的soPlainTextstyle="MARGIN:0cm0cm0pt;LINE-HEIGHT:18pt;mso-line-height-rule:exactly">器是否支持Cookie功能,惟一的办法就是自己去测试用户浏览器是否支持Cookie。这个问题似乎十分简单,正如
4、许多文章中所介绍的一样,我先给出一段ASP代码,它似乎可以轻易地完成任务。Cookie_test.asp<%Language="VBScript"%><%OptionExplicitDimCookieValuesetDimCookieValueReadCookieValueset="true"CookieValueRead="false"Response.Cookies("Cookie_test")=CookieValuesetResponse.Cookies("Cookie_test").Expires=Dat
5、e+1CookieValueRead=Request.Cookies("Cookie_test")IfCookieValueRead=CookieValueSetThenResponse.soPlainTextstyle="MARGIN:0cm0cm0pt;LINE-HEIGHT:18pt;mso-line-height-rule:exactly">ElseResponse.soPlainTextstyle="MARGIN:0cm0cm0pt;LINE-HEIGHT:18pt;mso-line-height-rule:exactl
6、y">EndIf%>实际上,上述代码在浏览器允许和禁止Cookie功能的情况下,均得到浏览器支持Cookie功能的结果。为什么会产生这样的结果呢?首先让我们来看一下Cookie的原理。浏览器是遵循HTTP协议访问soPlainTextstyle="MARGIN:0cm0cm0pt;LINE-HEIGHT:18pt;mso-line-height-rule:exactly">器回应其申请的内容,在这个过程中,浏览器会提供一块信息记录区来存储一些特殊的信息,这个信息记录区是可以由浏览器和soPlainTextstyle="MAR
7、GIN:0cm0cm0pt;LINE-HEIGHT:18pt;mso-line-height-rule:exactly">录区中。通过这个信息记录区,soPlainTextstyle="MARGIN:0cm0cm0pt;LINE-HEIGHT:18pt;mso-line-height-rule:exactly">将来进行访问,直到这个Cookie的生命期终止。在ASP代码中的Response.Cookies和Request.Cookies类就是用来访问Cookie的。现在的问题在于,按照HTTP协议,在往浏览器中写入Cookie后
8、,其内容实际上存在于缓存之中,直到该页面终止,才将内容写入到浏览器提供的信息记录区中去。在同一页面中写入Cookie后立即读出其内容,读出的是缓存中的临时信息,而不是信息记录区中真正的Cookie内容,所以在上面的代码中,即使浏览器禁止Cookie功能,仍然得到成功写入Cookie的结果。三、问题的解决要解决这个问题,可以有两个办法,第一个办法是利用两个页面文件来分别进行Cookie的写入和读出,在第一个文件中写入Cookie,然后转向第二个文件读出并判断,这样可以轻易地得到正确的结果。但访问两个页面文件的方法显然对soPlain
9、Textstyle="MARGIN:0cm0cm0pt;LINE-HEIGHT:18pt;mso-line-height-rule:exactly">在不担心这个问题的前提下,这是一个最佳的解决方法。第二个办法是利用ASP中的REDIRECT语句来
此文档下载收益归作者所有