[英]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.