我使用以下文章创建了一个在asp.net mvc2应用程序中显示Session expire警告消息的POC。 http://www.fairwaytech.com/2012/01/handling-session-timeout-gracefully/
我在代码中做了一处更改,如下所述:
在endSession方法中的 location.href = expireSessionUrl;
代码如下:
window.location.replace(expireSessionUrl);
一旦用户点击Session警告消息对话框中的Log Out按钮,他就会导航到LogOut视图。但是如果他点击浏览器后退按钮,他就会导航到上一页。
如上所述,我有以下修改过的Expire方法:
[Authorize]
public virtual ActionResult Expire()
{
Session.Clear();
FormsService.SignOut();
HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
HttpContext.Response.Cache.SetValidUntilExpires(false);
HttpContext.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
HttpContext.Response.Cache.SetNoStore();
return Redirect(“/”);
}
请指导我解决问题。
先谢谢 Santosh Kumar Patro
答案 0 :(得分:0)
您需要让缓存过期,请尝试以下操作:
Page.Response.Cache.SetCacheability(HttpCacheability.NoCache)
或来自docs:
Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetValidUntilExpires(true);
或者您可以使用Response.CacheControl来控制页面在用户缓存中的存储方式