1
我刚刚阅读了大约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);
}
在MVC 4,我相信用户属性脱落背景下,而不是请求。 – Steve