Internet Explorer显示缓存页面(需要cookie才能查看)

本文关键字:cookie 需要 显示 Explorer 缓存 Internet | 更新日期: 2023-09-27 17:50:10

我在我的web服务器中有一个文件夹,其中包含一些aspx页面,只有在某个cookie存在时才能访问。

在page_load事件上,我正在检查这个cookie是否存在,如果不重定向到Default.aspx。这在Google chrome和FireFox(我还没有测试过)等浏览器上效果很好。但是…由于某种原因IE会发送某种cookie,因为我的网站仍然认为有某种可用的cookie ..

所以我在我的页面上添加了一个按钮来删除cookie。但是根据我的代码,cookie不存在(这是正确的)。我当时的假设是IE缓存了页面。所以擦拭缓存后,我的页面代码工作正常,你得到重定向到Default.aspx。

是否有某种方式拒绝访问文件夹,如果该cookie不存在,使IE不显示一个不工作的页面?

这有点难以解释。

我的cookie检查代码是:

protected void Page_Load(object sender, EventArgs e)
{
   {
      SimpleAES decrypt = new SimpleAES();
      //Check for Authentication Cookie
      HttpCookie auth_Cookie = new HttpCookie("WEB_AUTH");
      auth_Cookie = Request.Cookies["WEB_AUTH"];
      if (auth_Cookie != null)
      {
         //Some code to execute if Cookie exists and holds correct values
      }
      else
      { 
         //If there isn't a cookie, redirect to login.aspx
         Response.Redirect("~/Default.aspx"); 
      }
   }
}

欢迎提供任何帮助!由于

添加

我只是希望这些页面在文件夹'XXX'不显示,如果该cookie不可用。但是IE从它的本地缓存中加载页面,而不是检查它是否真的可以加载这个。该怎么办?

编辑

文件夹'XXX'中的页面有1个母版页,其中包含Cookie检查代码。

Internet Explorer显示缓存页面(需要cookie才能查看)

您需要阻止浏览器缓存页面。您应该设置Response。根据您的需求缓存(http://msdn.microsoft.com/en-us/library/system.web.httpresponse.cache(v=VS.100).aspx)。

请注意,理论上浏览器可以完全忽略你的缓存头,并从自己的缓存加载页面,在实践中,所有的浏览器都尊重缓存头。