繁体   English   中英

单击浏览器后退按钮后,注销仍可访问授权页面

[英]Logout still access to authorize page when click on browser back button

我有一个记住我的登录和注销方法。 从“索引”页面注销(授权)后,我仍然可以使用浏览器的(chrome)后退箭头返回“索引”。 是因为记得我吗? 如何完全从我的网站注销?

即使“记住我”已选中或未选中,也会发生这种情况。 我尝试清除浏览器缓存和历史记录。

    [HttpPost]
    public ActionResult Login(LoginModel loginModel)
    {
        User user = db.Users.Where(u => u.Username.Equals(loginModel.Username) && u.Password.Equals(loginModel.Password)).FirstOrDefault();
        if (user != null)
        {
            FormsAuthentication.SetAuthCookie(user.UserPkID.ToString(), loginModel.RememberMe);
            return RedirectToAction("Index", "Home");
        }
        else
        {
            return View();
        }
    }

    [HttpGet]
    public ActionResult Logout()
    {
        FormsAuthentication.SignOut();
        return RedirectToAction("Login");
    }

不,这不是因为记住我。

您必须在pushState中推送网址并清除浏览器历史记录:

尝试这个 :

$(document).ready(function() {
        window.history.pushState(null, "", window.location.href);        
        window.onpopstate = function() {
            window.history.pushState(null, "", window.location.href);
        };
    });

检查这里: 使用jQuery禁用浏览器中的后退按钮?

public class MvcApplication : System.Web.HttpApplication{}内的Application_Start()函数之后,在Global.asax内添加此块public class MvcApplication : System.Web.HttpApplication{}

public class MvcApplication : System.Web.HttpApplication
 {
 // Application_Start() and other functions

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

  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM