Autorización y ASP.NET MVC Caching

Estoy confundido con el caché y la autorización de ASP.NET MVC y necesito una aclaración.

Mi atributo de autorización hecho a sí mismo hereda deAuthorizeAttribute. Está anuladoAuthorizeCore El método se ejecuta cada vez, incluso si configuro un[OutputCache] atributo en una acción de controlador. Entiendo esa parte.

Ahora la mente se dobla por mí:AuthorizeCore seráfallar Ahora cada vez que realmente hago caché de salida y la página se sirve desde la memoria caché. La razón es que cuando la solicitud se almacena en caché, lahttpContext.Session suministrado conAuthorizeCore esnull!? Aquí hay un código simplificado:

protected override bool AuthorizeCore(HttpContextBase httpContext) {
    return (Session["userId"] != null)
}

Así que sihttpContext.Session esnull, esto obviamente falla cada vez. Sin embargo, debo acceder a la sesión. ¿De qué otra manera puedo verificar si la solicitud está autorizada? Esto no tiene ningún sentido, si así fuera como debería serNunca ser capaz de usar páginas en caché junto con la autenticación en ASP.NET MVC. ¿Ayuda?

Respuestas a la pregunta(1)

Su respuesta a la pregunta