我已经创建了我的自定义身份验证。现在我想在注销按钮单击时禁用浏览器缓存。我该怎么做?我应该在注销操作中包含哪些内容?
我正在关注:http ://www.bradygaster.com/custom-authentication-with-mvc-3.0
我已经创建了我的自定义身份验证。现在我想在注销按钮单击时禁用浏览器缓存。我该怎么做?我应该在注销操作中包含哪些内容?
我正在关注:http ://www.bradygaster.com/custom-authentication-with-mvc-3.0
您是否关心注销后浏览器的后退按钮?
如果是,那么您不应该在注销时禁用缓存。您应该在所有不想被缓存的页面上禁用它,在您的情况下,这些页面都是经过身份验证的页面。
这可以通过编写自定义操作过滤器来完成:
public class NoCacheAttribute : ActionFilterAttribute
{
public override void OnResultExecuting(ResultExecutingContext filterContext)
{
var response = filterContext.HttpContext.Response;
response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
response.Cache.SetValidUntilExpires(false);
response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
response.Cache.SetCacheability(HttpCacheability.NoCache);
response.Cache.SetNoStore();
}
}
然后用它装饰你的动作:
[Authorize]
[NoCache]
public ActionResult Foo()
{
...
}