网站首页 | 经济学论文 | 证券金融 | 管理学 | 会计审计 | 法学论文 | 医药学论文 | 社会学论文 | 教育论文 | 计算机 | 艺术论文 | 哲学论文 | 财务管理 |
写论文网
  • 民法论文
  • 经济法论文
  • 国际法论文
  • 法学理论论文
  • 司法制度论文
  • 国家法论文
  • 宪法论文
  • 刑法论文
  • 行政法论文
  • 您的位置:写论文网 > 法学论文 > 民法论文 > 用ASP检测浏览器是否允许Cook... 正文 2019-12-29 07:26:12

    用ASP检测浏览器是否允许Cookie功能的方法:x浏览器

    相关热词搜索:

    用ASP检测浏览器是否允许Cookie功能的方法

    用ASP检测浏览器是否允许Cookie功能的方法 用ASP检测浏览器是否允许Cookie功能的方法 作 者:董云 YUN DONG 工作单位:黄埔海关技术处工程师 通讯地址:广州市经济技术开发区志诚大道海关大楼 电话号码:020-82130556 邮政编码:510730 电子邮件:dy168@163.com 摘 要:指出用ASP检测浏览器Cookie功能的误区,说明错误的原因,并 给出 解决方法和源代码 关键词:浏览器、Cookie、信息记录区 一、前言 检测浏览器是否允许Cookie功能其实并不困难。许多的文章都讨论到这个 问题,但是,这 些文章中往往存在着许多问题,使得读者容易混淆,甚至有些文章中所给 出的方法根本就是 错误的。本文将一步一步地详细解释困难所在,并给出实用的ASP代码。

    二、问题的提出 尽管现在的浏览器基本上都支持Cookie功能,但是用户可以通过设置将 Cookie功能禁止, 对于希望将一些信息记录到浏览器上去的Web服务器,就必须要清楚前来访问的用户浏览 器是否支持Cookie功能,惟一的办法就是自己去测试用户浏览器是否支持 Cookie。这个问 题似乎十分简单,正如许多文章中所介绍的一样,我先给出一段ASP代码, 它似乎可以轻 易地完成任务。

    Cookie_test.asp %@ Language="VBScript" % % Option Explicit Dim CookieValueset Dim CookieValueRead CookieValueset="true" CookieValueRead="false" Response.Cookies("Cookie_test") = CookieValueset Response.Cookies("Cookie_test").Expires = Date + 1 CookieValueRead = Request.Cookies("Cookie_test") If CookieValueRead = CookieValueSet Then Response.Write "浏览器支持Cookies" Else Response.Write "浏览器不支持Cookies" % 实际上,上述代码在浏览器允许和禁止Cookie功能的情况下,均得到浏览 器支持Cookie功能的结果。为什么会产生这样的结果呢?首先让我们来看一下Cookie的原 理。浏览器是遵 循HTTP协议访问Web服务器的,一个完全的HTTP请求是由浏览器发出申 请,Web服务 器回应其申请的内容,在这个过程中,浏览器会提供一块信息记录区来存 储一些特殊的信息, 这个信息记录区是可以由浏览器和Web服务器同时访问的,而Cookie就保 存在这个信息记 录区中。通过这个信息记录区,Web服务器可以写入Cookie以记录一些信 息,并且可以在 将来进行访问,直到这个Cookie的生命期终止。在ASP代码中的 Response.Cookies和 Request.Cookies类就是用来访问Cookie的。

    现在的问题在于,按照HTTP协议,在往浏览器中写入Cookie后,其内容 实际上存在于缓 存之中,直到该页面终止,才将内容写入到浏览器提供的信息记录区中去。

    在同一页面中写 入Cookie后立即读出其内容,读出的是缓存中的临时信息,而不是信息记 录区中真正的 Cookie内容,所以在上面的代码中,即使浏览器禁止Cookie功能,仍然得 到成功写入Cookie 的结果。

    三、问题的解决 要解决这个问题,可以有两个办法,第一个办法是利用两个页面文件来分 别进行Cookie的写入和读出,在第一个文件中写入Cookie,然后转向第二个文件读出并判 断,这样可以轻 易地得到正确的结果。但访问两个页面文件的方法显然对Web服务器的管 理添加了麻烦, 在不担心这个问题的前提下,这是一个最佳的解决方法。

    第二个办法是利用ASP中的REDIRECT语句来解决问题,如下笔者给出 ASP源代码。浏 览器访问Cookie.asp,这个文件中含有一些代码判断Cookie检查是否已经 作过,如果是, 则显示检查结果,如果没有,则自动转向Cookie_Detect.asp文件,在该文 件中测试Cookie 功能并将结果传回给Cookie.asp。值得强调的是,我们不能使用ASP的 Cookies和Sessions, 因为它们都是利用前面所提的信息记录区来存储信息的,当Cookie功能禁 止后,不可跨页 面使用。因此,笔者使用了QuerySring 来传递参数。

    四、源代码 Cookie.asp %@ Language="VBScript" % % Option Explicit Response.Buffer = True Dim bCookies " T/F indicating Cookies enabled. bCookies = Request.Quer Select Case LCase(bCookies)Case "true", "false" " We got a valid response. bCookies = CBool(bCookies) Case Else Response.Cookies("Cookie_test") = "true" Response.Redirect "Cookie_detect.asp" End Select % html head title检测浏览器是否允许Cookie功能/title /head 该浏览器Cookies功能: %= bCookies % /body /html Cookie_detect.asp %@ Language="VBScript" % % Option Explicit Response.Buffer = True Dim bCookiesEnabled bCookiesEnabled = Request.Cookies("Cookie_test") bCookiesEnabled = (bCookiesEnabled = "true") Response.Redirect "Cookie.asp" "Cookies=" bCookiesEnabled%

    • 范文大全
    • 教案
    • 优秀作文
    • 教师范文
    • 综合阅读
    • 读后感
    • 说说
    用ASP检测浏览器是否允许Cookie功能的方法:x浏览器》由(写论文网)整理提供,版权归原作者、原出处所有。
    Copyright © 2019 写论文网 All Rights Reserved.