【发布时间】:2012-03-05 19:03:35
【问题描述】:
我有一个页面需要检查是否存在 cookie,然后执行重定向。
我编写了代码 (ASP.NET) 来检测 cookie 并执行重定向。伪代码:
HttpCookie myCookie = Request.Cookies.Get("theCookie");
if(myCookie == null)
{
myCookie = new HttpCookie("theCookie","myValue")
response.Redirect("page.aspx"); //Redirect to check for the presence of the cookie
}
More code...
当用户启用 cookie 时,这种方法可以正常工作。但是,当它们禁用 cookie 时,它们最终会陷入无限循环(页面尝试创建 cookie,重定向,没有看到 cookie,然后再次重定向,无限循环)。大多数人类用户可能会没事,但这可能会对网站的 SEO 评级产生影响。
我已经绞尽脑汁寻找解决方案,因为 cookie 是不可能的,所以留下了视图状态和查询字符串。
因为我必须做一个重定向,我想我被查询字符串困住了。问题是为了检测页面是否已经被点击,我需要附加一个查询字符串以防止重定向再次启动。
谁能想到不使用 cookie、视图状态或查询字符串的方法来完成此操作(防止重定向)?我认为答案可能是否定的......
【问题讨论】: