在ASP.NET MVC 3中为未经过身份验证的用户缓存主页

时间:2012-02-07 17:33:25

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

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

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

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

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

最好的方法是什么?

问候。

1 个答案:

答案 0 :(得分:2)

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