zoukankan      html  css  js  c++  java
  • 勤于思考: ASP.NET MVC 注销后 使用浏览器 【后退】 不使用缓存页面

    经过自己和朋友一起探讨,总结出三种方法实现。

    方法一:

    <script type="text/javascript">
            $(function () {
                window.history.forward(1);
             });
    </script>

    在系统后台页面或者是模板页加入该句脚本,使后退和前进相互抵消。

    方法二:

    <script type="text/javascript"> 
        $(function () {
                $.post("/Account/isLogin", { random : Math.random() },function(data){
                    if (data != "True") {
                        window.location.reload();
                    }
                });
        });
    </script>

    在系统后台页面加入Ajax请求访问服务器判断用户是否为登录状态,如果不是刷新该页

    这种方法还是有点美中不足,就是点击后退的时候会闪现一下原先的页面,而且还要多一个请求,浪费资源。

    方法三:

        public class NoCacheFilter : ActionFilterAttribute 
        {
            public override void OnResultExecuting(ResultExecutingContext filterContext)
            {
                filterContext.HttpContext.Response.Cache.SetNoStore();
            }
        }

    由于我是使用MVC3框架定义以上过滤器,不启用缓存设置

         public static void RegisterGlobalFilters(GlobalFilterCollection filters)
         {
                filters.Add(new HandleErrorAttribute());
                filters.Add(new NoCacheFilter());
         }

    全局的话可以丢到Application_Start()程序启动时GlobalFilters.Filters集合中。

    [NoCacheFilter]
    public class AccountController : Controller
    {
           [NoCacheFilter]
            public ActionResult LogOut()
            {
                Session["Users"] = null;
                Session["Department"] = null;
                Session.Clear();
                Session.RemoveAll();
                Cookie.ClearUserCookie();
                Cookie.ClearUserCookie("url");
                ClearCache();
    
                return Redirect("/Account/Login");
            }
    }

    也可以单独对某个控制器使用或者某个动作使用。取决于你想要哪里不缓存。

    感谢我的伙伴波神与我一起探讨这个问题,最后我确实犯2了那么鬼简单搞那么麻烦出来。

  • 相关阅读:
    招聘.NET开发人员
    SQL 2005 SSIS 导入数据效率问题
    用户控件使用事件与调用页面交互
    使用sql语句删除标识列属性
    poj1520
    poj1476
    poj1363
    poj1477
    poj1312
    大端法小端法与union
  • 原文地址:https://www.cnblogs.com/79039535/p/3358554.html
Copyright © 2011-2022 走看看