2009-09-23 25 views
0

セッションの間違いを誰も共有しているアプリケーションはありますか?asp.net mvcセッション状態..ヘルプ?

MVCアプリケーションにはバニラ設定がありますが、何らかの理由でセッションが共有されています。

私はFFとIEを切り替えてログイン状態を維持することはできませんでしたが、私はマシンを切り替えることもできることに気付きました。

私のweb.configにはセッション状態の設定に何も含まれていないので、私はそれがクッキーベースであると仮定しましたが、そうではないようです。

誰もこれまでにこれを経験したことがありますか?もしそうなら、どのように解決しましたか?

FYI:Server 2003 IIS6で実行しています。

ありがとうございました!

Gavさん

+0

1つのブラウザでブラウザのデータを消去してからブラウザを変更するなどの明白なことをすべてテストしたとしますか?共有してはならない... –

+0

Nathan、私はキャッシュ、クッキーなどをクリアしました。しかし、クッキーはブラウザと複数のコンピュータで共有されないので、違いはありません。しかし、他の提案をありがとう? – Gavin

+0

UPDATE! セッションIDはブラウザ/コンピュータによって異なります。セッション( "Key" = Value)を使用していても、データがセッションに保存されていないようです。 アイデアはありますか? Gav – Gavin

答えて

0

さてあなたはそれを信じているでしょう...愚かな静的変数...

私はそれがデータを取得するときのように多くの仕事をやっていないことで私を助けるだろうと静的なプライベート変数を使用して思ったが、それはそうとそれは悪の根源でした。 (医者悪ピンク)

ありがとうございました!

** 注記はありません。 TO DO IT **

public class UserHelper 
{ 
    private static UserSession _session; 
    public static UserSession Session 
    { 
     get 
     { 
     // If we already have the session, don't get it 
     // from the session state 
     if (_session == null) 
     { 
      // Attempt to get the session from the 
      // session state 
      _session = GetUserSessionFromSession(HttpContext.Current.Session); 
      if (_session == null) 
      { 
      // Create a new session object 
      _session = new UserSession(); 
      } 
     } 
     return _session; 
     } 
     set 
     { 
     // Set the local value 
     _session = value; 
     // Add the object to the session state 
     HttpContext.Current.Session["SMEUser"] = _session; 
     } 
    } 

    public static void Logout() 
    { 
     Logout(HttpContext.Current.Session); 
    } 

    public static void Logout(HttpSessionState session) 
    { 
     _session = null; 
     session.Clear(); 
    } 

    public static UserSession GetUserSessionFromSession(HttpSessionState session) 
    { 
     // Get the session from the session state 
     UserSession us = session["SMEUser"] as UserSession; 
     return us; 
    } 
} 
0

あなたは、具体的セッションに保存するものを使用するか、あなたは(一時的にだけでなくセッションを使用しています)TempDataを呼び出しでこれを見ていますか?

+0

私はそれらをHttpSessionState(HttpContext.Current.Session)内に格納しています。 – Gavin

関連する問題