我只是在阅读OutputCache
,我看到了如何VaryByParam
根据发送到视图的参数申请更改缓存,但我想根据参数和当前登录的用户(使用 Asp.Nets默认成员)。我一直在环顾四周,但我似乎无法找到一种方法来让它工作。
关于我应该尝试什么的任何建议?
我只是在阅读OutputCache
,我看到了如何VaryByParam
根据发送到视图的参数申请更改缓存,但我想根据参数和当前登录的用户(使用 Asp.Nets默认成员)。我一直在环顾四周,但我似乎无法找到一种方法来让它工作。
关于我应该尝试什么的任何建议?
使用 VaryByCustom。我实现了这样的东西:
[OutputCache(VaryByCustom="user")]
public ActionResult SomeAction()
{
return View();
}
在 Global.asax.cs 中
public override string GetVaryByCustomString(HttpContext context, string arg)
{
if (arg == "user")
{
return context.Request.User.Identity.IsAuthenticated ? context.Request.User.Identity.Name : string.Empty;
}
return base.GetVaryByCustomString(context, arg);
}