C# 从控制器向GetVaryByCustomString传递数据

C# 从控制器向GetVaryByCustomString传递数据,c#,asp.net,asp.net-mvc,caching,outputcache,C#,Asp.net,Asp.net Mvc,Caching,Outputcache,我有一个ASP.NET MVC应用程序,我使用输出缓存 我需要从GetVaryByCustomString的数据库中获取额外信息 方法 我无法使用会话、临时数据等。。。在GetVaryByCustomString 如何从控制器向GetVaryByCustomString传递数据? //In Controller Session["IsAdmin"] = LoggedUser.IsAdmin; Session["IsSalesMan"] = LoggedUser.IsSalesMan; Sessi

我有一个ASP.NET MVC应用程序,我使用输出缓存

我需要从GetVaryByCustomString的数据库中获取额外信息 方法

我无法使用会话、临时数据等。。。在GetVaryByCustomString

如何从控制器向GetVaryByCustomString传递数据?

//In Controller
Session["IsAdmin"] = LoggedUser.IsAdmin;
Session["IsSalesMan"] = LoggedUser.IsSalesMan;
Session["SomeData"] = SomeObject.SomeData;

//In global.asax
public override string GetVaryByCustomString(HttpContext context, string arg)
{
    var session = context.Session;
    var request = context.Request;

    var sb = new StringBuilder();

    //here throw exception becauase session is null
    sb.Append(session["IsAdmin"]);
    sb.Append(session["IsSalesMan"]);
    sb.Append(session["SomeData"]);

    return sb.ToString();
}