我有一个简单的 MVC 项目,它显示登录用户的一些信息。控制器和动作具有 [Authorize] 属性,控制器也具有 NoCacheAttribute,如下所示:
public class NoCacheAttribute : 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);
}
}
如果我从应用程序注销并点击后屏幕,在所有桌面浏览器上,它会将我重定向到登录页面,但在 iPad2 上的 Safari 上,我仍然有缓存的信息页面,并以一种奇怪的方式呈现信息页面顶部的登录页面(不知何故在屏幕的中心)。
我猜这是 iPad 上的缓存问题,因为我希望未经身份验证的用户无法看到信息页面。
有没有人遇到过这个问题?
谢谢, 塔玛什