经典 ASP中使用服务器端代码检查用户浏览器中是否启用了会话 cookie的一种优雅方式是什么(因为 javascript 也可能被禁用)。
我有自己的解决方案,但它看起来很丑陋。
@James - 虽然设置会话cookie和通用cookie没有区别(IE让您区分第一方,会话cookie和第三方,但我看到Firefox他们只区分第一方和第三方)?我在登录页面中设置一个会话值,然后做一个 Response.Redirect 有点事情并检查会话值是否仍然有效。
经典 ASP中使用服务器端代码检查用户浏览器中是否启用了会话 cookie的一种优雅方式是什么(因为 javascript 也可能被禁用)。
我有自己的解决方案,但它看起来很丑陋。
@James - 虽然设置会话cookie和通用cookie没有区别(IE让您区分第一方,会话cookie和第三方,但我看到Firefox他们只区分第一方和第三方)?我在登录页面中设置一个会话值,然后做一个 Response.Redirect 有点事情并检查会话值是否仍然有效。
除非您在 cookie 上指定过期时间,否则它将是会话 cookie。术语会话在 HTTP 中有点过载。当 IE 对话框引用会话 cookie 时,它意味着任何 cookie 仅存储在进程内存中而不持久化到磁盘,因此仅在进程(会话)期间存在。启动另一个 IExplore.exe 进程,您将拥有另一个会话,其中不包含任何先前或现有会话 cookie 的值。
你是对的,尽管你可以通过在会话对象中存储一个值并测试它在重定向上的存在来测试会话级别的 cookie 是否被阻止。
好吧,我们使用的“丑陋的地狱”方法是设置一个 cookie 并重定向到一个新页面。在新页面的代码中,查看是否设置了 cookie。由于到达第二页的唯一方法是在设置 cookie 时重定向到那里,所以它的存在或不存在应该告诉浏览器的状态。