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 の認証と一緒に使用することはできません。ヘルプ?