1

我有一个简单的 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 上的缓存问题,因为我希望未经身份验证的用户无法看到信息页面。

有没有人遇到过这个问题?

谢谢, 塔玛什

4

0 回答 0