您的位置:首页技术开发ASP技巧 → 如何单页面判断浏览器是否接受Cookies

如何单页面判断浏览器是否接受Cookies

时间:2004/11/7 4:12:00来源:本站整理作者:蓝点我要评论(0)

在 asp 应用中,经常用到 session 对象来保存用户临时私有数据,而 asp 的 session 对象是依赖于浏览器的 cookie 的,如果用户出于安全原因或无意中关闭了 cookie 选项,则 asp 将无法正确识别用户,最终导致 session 对象不能正常使用。

要正确执行以后的程式,就要先识别客户程式是否接受 cookie,然而浏览器并没有提供识别 cookie 是否关闭的方法,这样就需要我们自己来想办法进行测试。

于是非常多研发人员就纷纷用自己的办法来测试浏览器的 cookie 状态,最常见的方法是在一个页面里面送出一个 cookie,然后在另一个页面中测试此 cookie 是否存在。这样以来,我们就需要两次 asp 请求。

我这里介绍的是一种结合服务器脚本和客户端脚本,一次测试浏览器状态的方法。

在 netbox 第一次初始化 asp 程式时,将分配一个新的 session 对象,并向客户端送出一个以 application.applicationid 为名称的 cookie,浏览器如果接受 cookie,则下次访问时将回送此 cookie,netbox 服务器在接受到此 cookie 以后,将选用其指定的 session 对象作为此次 asp 请求的 session 对象使用,以确保 session 对象针对具体用户的唯一性和持久性。

由此我们知道,能通过判断浏览器是否接受了 application.applicationid 为名称的 cookie 来判断能否继续下面的程式。而判断浏览器中是否含有某个 cookie,则可是使用浏览器的 cookie 对象来完成。下面这段代码就是测试浏览器是否接受了 netbox 的 session:

<html>
<body>
<script language="javascript">
if(document.cookie.search("<%=application.applicationid%>=") == -1)document.write("not ");
</script>allow.
</body>
</html>
这段代码的前提是知道 netbox 送出的 cookie 的名称。如果希望在 iis 中使用此段代码,则比较困难,因为 iis 每次启动后送出的 cookie 的名称都是不同的,所以为了测试,能自行送出一个 cookie 然后再进行测试:

<%response.cookie("cookiecheck")="on"%>
<html>
<body>
<script language="javascript">
if(document.cookie.search("cookiecheck=") == -1)document.write("not ");
</script>allow.
</body>
</html>

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 VB.NET 2005编写定时关 Jquery get/post下乱码解决方法 前台gbk gb如何使用数据绑定控件显示数据ASP脚本循环语句ASP怎么提速

人气排行 轻松解决"Server Application Error"和iis"一起学习DataGridView调整列宽用ASP随机生成文件名的函数Jquery get/post下乱码解决方法 前台gbk gbODBC Drivers错误80004005的解决办法返回UPDATE SQL语句所影响的行数的方法用Javascript隐藏超级链接的真实地址两个不同数据库表的分页显示解决方案