2013-02-11 35 views
6

IIS 7でホストされているASP.NET WebApiでは、セッションにアクセスできますか? ではSessionがヌルであると表示されます。ASP.NET WebApiセッションと静的変数

グローバル変数を格納するためのこれらの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>(); 

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

答えて

6

まあ、セッション変数は/ユーザーです。静的変数は、すべてユーザーの間で共有される変数です。だから、私はなぜユーザーごとに接続文字列を格納するのか分かりませんが、そうする必要がある場合は、1つの静的変数を使用することはできません。ここで、静的変数を使用して辞書を作成することができます。ここで、キーはユーザーであり、値は保存するものです。それは確かにうまくいくでしょう。

すべてのことを言って、あなたは(最終的にセッションがとにかく(通常)の使用を作るものである)クッキーを使用してセッションを模倣することができます参照してください:Accessing Session Using ASP.NET Web API