【问题标题】:MVC5 caching caches user's session, how can I prevent this?MVC5 缓存缓存用户的会话,我该如何防止这种情况?
【发布时间】:2016-09-07 13:36:03
【问题描述】:

当我向控制器的 ActionResult 添加缓存属性时,如下所示:

[OutputCache(CacheProfile = "Cache1Hour")] 

以及 Web.config 中的配置文件:

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

它缓存用户与页面的会话,因此由于站点在右上角显示用户名,它显示缓存的用户而不是当前用户。 如何防止这种情况发生?我在 MVC 3 网站上没有这个问题。

【问题讨论】:

    标签: asp.net-mvc caching asp.net-mvc-5


    【解决方案1】:

    varyByHeader="*" 添加到Web.config 中的缓存配置文件似乎有效,因为标头包含会话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

    【讨论】:

      猜你喜欢
      • 2012-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多