当前位置:编程学习 > C#/ASP.NET >>

页面缓存问题

我在注销时间中加了如下代码
{
    Session.Clear();
    Session.Abandon();
    Response.Expires = 0;
    Session.RemoveAll();
    Response.Cookies.Clear();

    HttpContext.Current.Response.Buffer = true;
    HttpContext.Current.Response.Expires = 0;
    HttpContext.Current.Response.ExpiresAbsolute = DateTime.Now.AddDays(-1);
    HttpContext.Current.Response.AddHeader("pragma", "no-cache");
    HttpContext.Current.Response.AddHeader("cache-control", "private");
    HttpContext.Current.Response.CacheControl = "no-cache";
}

为什么注销后点击浏览器的后退按钮还能看到刚才注销的页面呢,按说不应该啊,都已经把缓存清除了,怎么还能后退看到原来的页面呢,不明白,请教高手! --------------------编程问答-------------------- try:

  FormsAuthentication.SignOut();
            Session.Clear();
            Session.Abandon();
            Response.Clear();


            //清空缓存 
            Response.Buffer = true;
            Response.ExpiresAbsolute = System.DateTime.Now.AddMonths(-120);
            Response.Expires = 0;
          
           
            Response.CacheControl = "no-cache";
            Response.AddHeader("pragma", "no=cache");
--------------------编程问答-------------------- 禁止用户按 退后键 
--------------------编程问答-------------------- 1楼的代码跟我的没什么区别嘛 --------------------编程问答-------------------- 你清楚的是服务器端的,你客户端IE也有缓存。
你在你的页面判断一下不让回退,或者在url上作判断,如果是从当前页url来的就从新刷缓存 --------------------编程问答-------------------- 客户端的有办法清除吗,不用url判断不行吗 --------------------编程问答-------------------- 客户端的好像不行,清楚不了 --------------------编程问答-------------------- 有一个逻辑你没搞清楚.

你需要在你不想"被退回的页面"中禁用缓存.

而不是在"注销事件"中禁用缓存.
--------------------编程问答-------------------- 每个页面都有注销链接,如果每个页面在加载的时候都禁用缓存,那就是名副其实的不能后退了,我想要的功能是在用户未注销的时候页面之间的后退和前进时随意的,但一旦注销后就不能后退,就想网易邮箱似的。你说的那种在页面中禁用缓存说的太死了,那样的话就连页面之间的后退都不能用了,这样有种一棍子打死的感觉啊! --------------------编程问答-------------------- 其实我感觉并不是要在页面上禁用缓存,我是想在注销的时候把缓存清除,这应该是两个概念吧,上面我说的每个页面中都有注销链接,指的是该注销链接的主要功能一方面是注销,一方面是更换用户,这应该都懂吧 --------------------编程问答--------------------
引用 9 楼 koxxpdyks 的回复:
其实我感觉并不是要在页面上禁用缓存,我是想在注销的时候把缓存清除,这应该是两个概念吧,上面我说的每个页面中都有注销链接,指的是该注销链接的主要功能一方面是注销,一方面是更换用户,这应该都懂吧

浏览器后退,是使用的客户端缓存.在用户的电脑上的临时数据,你所写的清除缓存代码,是在服务器端运行的代码. --------------------编程问答-------------------- 网易邮箱的那个注销做的很好啊,他们是怎么实现的,有知道的吗?难道没有办法清除客户端的缓存吗,那怎么样才能不让注销后的页面后退之后看不到原来的页面呢?
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,