MVC アクションの出力をキャッシュしたいと思います。でも:
1)OutputCacheAttribute
グローバルに適用すると、すべてのユーザーのすべてがキャッシュされるため危険です。
2)OutputCacheAttribute
グローバルに適用しAuthorize
てから、承認が必要なアクションに属性を適用しても、問題は解決しません。ユーザーが承認されているかどうかに関係なく、すべての出力は引き続きキャッシュされます。
3) OutputCacheAttribute
(グローバルではなく) 選択したアクションのみに適用しAuthorizeAttribute
、承認を必要とするすべてのアクションを適用する場合、セキュリティ上の脅威はありませんが、パフォーマンス コストが発生します。認証が必要なすべてのページは、新しい Http リクエストを作成する必要があります。
ユーザーが認証されている場合にのみ、選択したページや選択したタイプのリクエスト (HTTP GET) がクライアントにキャッシュされるように、妥協点を見つけたいと考えています。ユーザーがログアウトして、キャッシュされたページ/アクションの URL にアクセスした場合、コンテンツを表示できないようにする必要があります。
これを実装する方法はありますか?