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

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

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

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

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

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

最好的方法是什么?

问候。

最佳答案

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

关于asp.net - 在 ASP.NET MVC 3 中为未经身份验证的用户缓存主页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9180954/

相关文章:

asp.net-mvc - asp.net mvc 局部 View 错误出

asp.net-mvc - 从哪里获得 Microsoft.Web.Mvc.dll

c# - MVC3 - 文件下载 - 等待状态指示器

用于验证用户个人资料名称的 JavaScript 正则表达式

asp.net - 如何获得干净的 ASP.Net 错误页面?

c# - ConnectionStrings 从哪里来? ASP.net

asp.net-mvc-3 - 如何从 Sitecore MediaItem 获取图像参数?

asp.net-mvc - 将项目添加到 asp.net mvc 列表框客户端?

asp.net - 无法调试通过自定义 VirtualPathProvider 加载的 EmbeddedResource View

asp.net - 服务堆栈 :Type definitions should start with a '{' , 期望序列化类型 'AuthResponse' ,得到以以下开头的字符串