【问题标题】:ASP.NET WebApi Session vs Static VariablesASP.NET WebApi 会话与静态变量
【发布时间】:2013-01-26 21:27:06
【问题描述】:

在 IIS 7 中托管的 ASP.NET WebApi 中,它是否有权访问会话?在HttpContext.Current 上,Session 似乎为空。

这两种存储全局变量有什么区别?

private static Dictionary<string, string> ConnectionStrings
    {
        get
        {
            if (HttpContext.Current.Session["ConnectionStrings"] == null)
                HttpContext.Current.Session["ConnectionStrings"] = new Dictionary<string, string>();

            return HttpContext.Current.Session["ConnectionStrings"] as Dictionary<string, string>;
        }
    }

private static Dictionary<string, string> connectionStrings = new Dictionary<string, string>();

我应该使用会话变量还是静态变量来存储动态生成的连接字符串(长篇大论)?

【问题讨论】:

    标签: asp.net asp.net-web-api


    【解决方案1】:

    嗯,会话变量意味着 per 用户。静态变量是将在所有用户之间共享的变量。所以,我不知道为什么要存储一个连接字符串 per 用户,但如果你需要这样做,你不能使用一个静态变量。现在,您可以使用静态变量并将其设为字典,其中键是用户,值是您要存储的任何内容。那肯定会奏效。

    说了这么多,您可以使用 cookie 来模拟会话(这最终是会话(通常)使用的东西):请参阅:Accessing Session Using ASP.NET Web API

    【讨论】:

      猜你喜欢
      • 2012-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-20
      • 1970-01-01
      • 2019-08-24
      • 2010-10-27
      相关资源
      最近更新 更多