我见过很多类似的问题,但是,我还没有找到一个答案来解决我的问题。
我有一个注销按钮,我使用了Session.Abandon()和Session.Clear()来清除会话。它工作正常。但是,每当我点击浏览器上的后退按钮时,页面仍然显示。但是,它应该显示登录表单,因为用户已经注销了。
控制器:
[HttpPost]
public ActionResult LogOut()
{
Session.Clear();
Session.Abandon();
return RedirectToAction("Index", "LogIn");
}
如何解决这个问题?。任何建议都是高度赞赏。提前感谢。
3条答案
按热度按时间ivqmmu1c1#
可以在
global.asax
中设置NoCachecarvr3hs2#
您可以将其设置为“ServerAndNoCache”来强制浏览器不缓存页面,而由服务器缓存页面,这样服务器上就没有额外的负载。
pengsaosao3#
还有另一个线程,我得到了这个Prevent Caching in ASP.NET MVC for specific actions using an attribute的答案
我的解决方案(.Net 6 MVC)如下:
然后将[NoCache]添加到我想要的控制器。
我之所以选择此选项,是因为它可以更好地控制要禁用缓存的位置,但如果您希望对整个解决方案执行此操作,则可以使用中间件(在Startup.cs上)https://learn.microsoft.com/en-us/aspnet/core/performance/caching/middleware?view=aspnetcore-7.0执行此操作