用户使用会话输出缓存

时间:2019-06-12 06:06:04

标签: asp.net-mvc c#-4.0

我必须提高网站的性能。因此我需要根据使用会话的单个用户将数据放入c#的输出缓存中。

实际上,我在global.asax中使用GetVaryByCustomString为输出缓存中的用户参数分配用户名。但是会话无法使用GetVaryByCustomString方法。

C#:-

[OutputCache(CacheProfile = "Dashboard")]
  public ActionResult Index()
  {}

Web.config:-

<caching>
      <outputCacheSettings>
        <outputCacheProfiles>
          <add name="Dashboard" duration="86400" varyByParam="*" varyByCustom="User" location="Server" />
        </outputCacheProfiles>
      </outputCacheSettings>
    </caching>

Global.asax:-

public override string GetVaryByCustomString(System.Web.HttpContext context, string arg)
        {
            if (arg == "User")
            {
                if (this.Session != null)
                    // depends on your authentication mechanism
                    return "User=" + context.Session;
                //?return "User=" + context.Session.SessionID;
            }


            return base.GetVaryByCustomString(context, arg);
        }

会话状态在这种情况下不可用

0 个答案:

没有答案