1

我只是在阅读OutputCache,我看到了如何VaryByParam根据发送到视图的参数申请更改缓存,但我想根据参数和当前登录的用户(使用 Asp.Nets默认成员)。我一直在环顾四周,但我似乎无法找到一种方法来让它工作。

关于我应该尝试什么的任何建议?

4

1 回答 1

4

使用 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);
}
于 2012-06-28T18:29:56.623 回答