在我们使用asp.net Form身份验证的时候,有时候退出网站了,但是通过点击浏览器的后退按钮可以跳过登录直接进入网站首页,为了解决这个问题了,我们可以在MVC的过滤器里面来实时清除网站的缓存。
解决方案:在FilterConfig文件创建如下方法:
public class NoCache : ActionFilterAttribute
{
public override void OnResultExecuting(ResultExecutingContext filterContext)
{
filterContext.HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
filterContext.HttpContext.Response.Cache.SetValidUntilExpires(false);
filterContext.HttpContext.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
filterContext.HttpContext.Response.Cache.SetNoStore();
base.OnResultExecuting(filterContext);
}
}
然后把该访问添加到过滤器里面就可以了:filters.Add(new NoCache());