0

asp.netmvcサイトのランディングページにページキャッシュを使用したいと思います。このページには、匿名ユーザーのみがアクセスできます。ただし、ユーザーがログインしている場合は、このページを認証されたユーザーのホームページにリダイレクトしたいと思います。

問題は、ランディングページをキャッシュした場合でも、ログインしているユーザーはブラウザにキャッシュされているため、このページにアクセスできることです。

明らかに、ユーザーが認証されている場合のメタリフレッシュヘッダーも機能しません。これは、ページが最初にヘッダーなしでキャッシュされるためです。

ランディングページをキャッシュするだけでなく、クエリパラメータを使用せずにユーザーがログインしている場合にリダイレクトする方法はありますか、それとも条件付きGETがこれを行う唯一の方法ですか?

4

1 に答える 1

1

VaryByCustomパラメーターを指定してOutputCacheAttributeを使用できます。

これを「IsAuthenticated」のように設定してから、Global.asaxファイルでGetVaryByCustomStringメソッドを定義し、ユーザーが認証されているかどうかに応じて、「True」または「False」の文字列を返します。

実際、次のブログ投稿はあなたの正確な質問に答えます:これを読んでください

于 2013-01-07T09:55:05.843 に答える