【问题标题】:Cache home page for non-authenticated users in ASP.NET MVC 3在 ASP.NET MVC 3 中为未经身份验证的用户缓存主页
【发布时间】:2012-02-29 03:47:53
【问题描述】:

我的网站有一个主页,我想为匿名用户缓存该页面,并为经过身份验证的用户将其设置为“私有”(因此他们将其保存在他们的计算机上,而不是其他任何地方)。

所以,如果用户是匿名用户,我想将页面保存在服务器缓存中,并使用Cache-control:public, max-age=60Vary:Cookie 保存在浏览器缓存中,因此如果浏览器通过身份验证并发送 cookie,浏览器将获胜'不要重复使用以前存储的页面。

如果用户通过身份验证,那么我不希望将页面存储在服务器中,但我会在客户浏览器上使用 Cache-control:private, max-age=60

我一直在尝试使用 OutputCacheAttribute 和 Response.Cache 的几种组合,但我无法做到正确。

最好的方法是什么?

问候。

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-mvc-3 caching outputcache


    【解决方案1】:

    您可以尝试实施VaryByCustom 规则,以区分匿名用户和经过身份验证的用户。这是an example,应该会让你走上正轨。

    【讨论】:

    • 嗨。这是我首先尝试的,但没有奏效。现在我想弄清楚为什么它不起作用,看看stackoverflow.com/questions/9210581/…。干杯。
    • 在您的链接中只是使用服务器端缓存,我对客户端和下游的 HTTP 缓存也很感兴趣。
    • 您可以像这样指定代理/客户端级缓存:context.Response.Cache.SetCacheability(HttpCacheability.Public);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-26
    • 2021-01-10
    相关资源
    最近更新 更多