【发布时间】:2019-09-16 13:19:42
【问题描述】:
我有一个登录和注销方法,记住我。从“索引”页面(授权)注销后,我仍然可以使用浏览器的(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");
}
【问题讨论】:
-
注销后返回,是否仍能像登录时一样与网站交互? (例如,logout > back > do_some_action_requiring_authentication)我问这个是因为我怀疑您的浏览器可能会在您返回时显示该站点的缓存副本。
-
@Kei 当我退出后返回时,我无法执行任何操作,当我执行某些操作时我到达了登录页面。
-
啊,好吧,在这种情况下,您的注销似乎没问题,问题在于浏览器处理历史记录的方式。您可以在下面尝试 Muhammad Aftab 的回答(但请注意,它会阻止用户使用后退按钮)或上面 Hari Hara Chandan 建议的链接中的解决方案之一。
标签: c# asp.net-mvc