Kje*_*sen 5 asp.net-mvc caching
对于网站,我想仅为未经过身份验证的用户缓存页面 - 经过身份验证的用户不会获得缓存内容(因为他们将更新并需要立即查看结果).
我知道如何使用VaryByCustom改变每个用户的缓存: Link1 Link2
...但我无法弄清楚如何完全关闭经过身份验证的用户的缓存.
该怎么办?
编辑
如果已经有未经身份验证的用户的页面缓存版本,则下面的代码存在问题.基本上,经过身份验证的用户将获得未经身份验证的事物视图.
但是,这里的链接有解决方案:Link
将其用作全局操作过滤器.
public class NoCacheForAuthenticatedUsersAttribute: ActionFilterAttribute
{
public override void OnResultExecuted(ResultExecutedContext filterContext)
{
if(filterContext.HttpContext.User.Identity.IsAuthenticated)
{
filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
}
}
}
Run Code Online (Sandbox Code Playgroud)
使用 HttpCachePolicy.AddValidationCallback。
请参阅:http ://msdn.microsoft.com/en-us/library/system.web.httpcachepolicy.addvalidationcallback.aspx
归档时间: |
|
查看次数: |
1050 次 |
最近记录: |