8

IIS7でホストされているASP.NETWebApiで、セッションにアクセスできますか?Sessionにnullが表示されますHttpContext.Current

グローバル変数を格納するためのこれら2つの違いは何ですか?

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>();

動的に生成される接続文字列を格納するためにセッション変数または静的変数を使用する必要がありますか(長い話)?

4

1 に答える 1

7

まあ、セッション変数はユーザーごとであることを意図しています。静的変数は、すべてのユーザー間で共有される変数です。したがって、ユーザーごとに接続文字列を保存する理由はわかりませんが、それを行う必要がある場合、1 つの静的変数を使用することはできません。ここで、静的変数を使用して辞書にすることができます。ここで、キーはユーザーであり、値は保存したいものです。それは確かにうまくいくでしょう。

そうは言っても、Cookie を使用してセッションを模倣することができます (これは最終的にセッションが (通常) とにかく使用するものです): 参照: ASP.NET Web API を使用したセッションへのアクセス

于 2013-02-11T17:58:14.637 に答える