【问题标题】:Page still shows after logout when back button is clicked asp.net mvc 3单击后退按钮时注销后页面仍然显示asp.net mvc 3
【发布时间】:2014-05-13 05:27:16
【问题描述】:

我见过很多几乎与此类似的问题。但是,我还没有找到可以解决我的问题的答案。

我有一个注销按钮,我使用 Session.Abandon() 和 Session.Clear() 来清除会话。它工作正常。但是,每当我点击浏览器上的后退按钮时,页面仍然显示。但是,它应该显示登录表单,因为用户已经注销。

控制器:

[HttpPost]
public ActionResult LogOut()
{
     Session.Clear();
     Session.Abandon();
     return RedirectToAction("Index", "LogIn");
}

如何解决这个问题?任何建议都非常感谢。提前致谢。

【问题讨论】:

  • 您是否使用Authorize 属性来检查您的操作中的授权? msdn.microsoft.com/en-us/library/…
  • @juanreyesv:不,我这样检查:尝试 { connect = connection.getConnection();模型 = 新模型。实体(连接);连接。打开();连接。关闭(); } catch { return RedirectToAction("Index", "LogIn"); } 。应该做什么而不是这样做?谢谢。

标签: c# jquery asp.net-mvc session


【解决方案1】:

您可以将其设置为“ServerAndNoCache”以强制浏览器不缓存页面,而是由服务器缓存页面,因此服务器上没有额外的负载。

【讨论】:

    【解决方案2】:

    global.asax可以设置NoCache

    protected void Application_BeginRequest()
    {
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1));
        Response.Cache.SetNoStore();
    }
    

    【讨论】:

    • 谢谢Ashiwini!..它成功了! :) 我只是想知道使用这种方法是否有缺点?
    • 唯一的缺点是它在应用程序级别设置了 nocache。见参考stackoverflow.com/questions/16337149/…
    • 这就像从一开始就运行整个系统而不依赖缓存,这样可以更快地检索页面..对吗?
    • “从一开始就运行整个系统而不依赖缓存”,是的,这是正确的。但是,我认为这不会导致页面加载速度更快。
    • 非常感谢 Ashiwini...:) 你帮了我很多。 :D
    猜你喜欢
    • 2013-11-08
    • 1970-01-01
    • 2018-08-03
    • 1970-01-01
    • 2020-06-18
    • 2017-04-07
    • 2018-12-14
    • 2012-05-07
    • 2012-05-01
    相关资源
    最近更新 更多