Tag: asp.net caching

授权和ASP.NET MVC缓存

我对ASP.NET MVC缓存和授权感到困惑,并且急需一些澄清。 我的自制授权属性inheritance自AuthorizeAttribute 。 即使我在控制器操作上设置了[OutputCache]属性,它每次都会运行其重写的AuthorizeCore方法。 我明白那一部分。 现在让我心烦意乱:当我实际执行输出缓存并且页面是从缓存提供时, AuthorizeCore每次都会失败 。 原因是当缓存请求时, httpContext.Session提供的httpContext.Session为null ! 这是一些简化的代码: protected override bool AuthorizeCore(HttpContextBase httpContext) { return (Session[“userId”] != null) } 因此,如果httpContext.Session为null ,则每次都会失败。 我需要访问会话,如何检查请求是否被授权? 这没有任何意义 – 如果它应该如此,那么我永远无法在ASP.NET MVC中使用缓存页面和身份validation。 救命?