2012-02-07 11 views
4

私のWebサイトにはホームページがあり、そのページを匿名ユーザー用にキャッシュし、認証ユーザー用に「非公開」に設定したいので自分のコンピュータ上で、どこにも)。ASP.NET MVC 3で認証されていないユーザーのキャッシュホームページ

したがって、ユーザーが匿名の場合は、ページをサーバーキャッシュに保存し、ブラウザキャッシュにもCache-control:public, max-age=60Vary:Cookieを使用して保存します。ブラウザが認証され、Cookieを送信すると、ブラウザは再利用されません前者の保存ページ。

ユーザーが認証されている場合は、サーバーに保存する必要はありませんが、Cache-control:private, max-age=60を使用して顧客のブラウザで行います。

私はOutputCacheAttributeとResponse.Cacheでいくつかの組み合わせを試してきましたが、それは正しくできません。

これを行う最善の方法は何ですか?

よろしくお願いいたします。

答えて

2

匿名ユーザーと認証ユーザーを区別するVaryByCustomルールを実装してみてください。正しいトラックにあなたを置くべきであるan exampleがあります。

+1

こんにちは。それは私が最初に試したものですが、うまくいきませんでした。今私はそれが動作していない理由を把握しようとしている、http://stackoverflow.com/questions/9210581/outputcache-is-sending-wrong-vary-header-when-the-call-hits-the -キャッシュ。乾杯。 – vtortola

+0

あなたのリンクでは、サーバー側のキャッシュを使用しているだけで、私はクライアントと下流のHTTPキャッシュにも興味があります。 – vtortola

+0

プロキシ/クライアントレベルのキャッシュを次のように指定できます。\t \t \t \t \t context.Response.Cache.SetCacheability(HttpCacheability.Public); – Dusda

関連する問題