|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
在 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> 返回类别: 教程 上一教程: ASP系列讲座(十九)治理会话 下一教程: ASP讲座之二:读取通过表单发送的数据 您可以阅读与"单页面判定浏览器是否接受 COOKIES"相关的教程: · 判定访问者的浏览器是否支持JAVASCRIPT和COOKIES · SQL SERVER结构浏览器 · SESSION对象在各浏览器中的有效范围 · 如何用FOREACH遍历页面上所有的TEXTBOX,判定他们是否为空 · 浏览器性能组件 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |