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 に答える