刷新加载重定向注销

时间:2013-05-21 14:13:00

标签: c# asp.net asp.net-mvc razor

我有一个asp.net mvc应用程序。我有一个身份验证表单:所以我使用了一个静态类,它包含一个静态布尔值,表示用户的连接:

 public static class CompteModels
    {
        private static bool connected = false;

        public static bool Connected
        {
            get { return CompteModels.connected; }
            set { CompteModels.connected = value; }
        }
    }

在控制器中我有这个片段:

 public ActionResult Index()
        {
            if (Upload.Models.CompteModels.Connected)
            {
                return View();
            }

            else return RedirectToAction("Login", "Account");
        }

        public ActionResult Logout()
        {
            Upload.Models.CompteModels.Connected = false;
            return RedirectToAction("Login", "Account");


        }

问题是:当我登录我的帐户然后我退出如果我come back to the previous page我的帐户页面重新打开(重定向到主页不起作用)
除了我刷新页面。 问题是什么?我如何能够编码我的代码?

1 个答案:

答案 0 :(得分:2)

“问题”是页面被缓存并且用户正在查看缓存页面。它实际上并未向您的网站发出请求。如果您不希望任何网站被缓存,那么他们总是从服务器加载页面,您可以将以下属性添加到所有控制器或基本控制器(如果有):

[OutputCache(NoStore = true, Duration = 0)]

您丢失了缓存中的所有带宽节省,但如果您的网站内部有高度敏感的数据,则可能值得。

我看到其他“黑客”涉及在每个页面加载时发出ajax请求,如果由于未经授权而失败,则重定向到登录屏幕。