Авторизация и ASP.NET MVC Кэширование

Я запутался в кэшировании и авторизации ASP.NET MVC и остро нуждается в некоторых пояснениях.

Мой самодельный атрибут авторизации наследуется отAuthorizeAttribute, Это переопределеноAuthorizeCore метод работает каждый раз, даже если я установил[OutputCache] атрибут действия контроллера. Я понимаю эту часть.

Теперь разум для меняAuthorizeCore будутпотерпеть поражение каждый раз, когда я на самом деле делаю кеширование вывода и страница обслуживается из кеша. Причина в том, что когда запрос кэшируется,httpContext.Session снабжен чем тоAuthorizeCore являетсяnull!? Вот'Несколько упрощенный код:

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

Так что еслиhttpContext.Session являетсяnullэто, очевидно, терпит неудачу каждый раз. Мне нужен доступ к сеансу, но как еще можно проверить, авторизован ли запрос? Это нене имеет никакого смысла - если это так, то я быникогда уметь использовать кэшированные страницы вместе с аутентификацией в ASP.NET MVC. Помогите?

Ответы на вопрос(1)

Ваш ответ на вопрос