2016-05-11 2 views
0

私はこのように、コントローラののActionResultにキャッシュ属性を追加します。MVC5キャッシュはユーザーのセッションをキャッシュしますが、どうすればこの問題を防ぐことができますか?

[OutputCache(CacheProfile = "Cache1Hour")] 

とWeb.configファイルにプロファイル:

<caching> 
    <outputCacheSettings> 
    <outputCacheProfiles> 
     <add name="Cache1Hour" duration="3600" /> 
    </outputCacheProfiles> 
    </outputCacheSettings>  
</caching> 

ためので、それがページで、ユーザーのセッションをキャッシュサイトの右上にユーザーの名前が表示されている場合、現在のユーザーではなくキャッシュされたユーザーが表示されます。 どうすればこの問題を防ぐことができますか? MVC 3のWebサイトでこの問題は発生しません。

答えて

0

Web.configのキャッシュプロファイルにvaryByHeader="*"を追加すると、ヘッダーにセッションCookieが含まれているために動作しているように見えますが、これによって各ユーザーのページがキャッシュされ、キャッシュオーバーフローが発生する可能性があります。

https://msdn.microsoft.com/en-us/library/system.web.configuration.outputcacheprofile.varybyheader(v=vs.110).aspx

別のオプションは、ユーザーコントロール出力のキャッシュ複数バージョンを使用することであってもよい https://msdn.microsoft.com/en-us/library/k4he1ds5(v=vs.110).aspx

関連する問題