Авторизация и 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. Помогите?