2011-06-08 6 views
1

を混合している私は、Webアプリケーションを持っており、これは私のWebアプリでセッションが

ユーザーがログインしているシナリオです。 データをDBからロードされているが

class UserData 
{ 
public string Name { get; set; } 
} 

とインスタンスの(例えば)オブジェクトに追加しましたこのオブジェクトはセッションに追加されます。別のコンピュータのユーザーがログインした後、そのセッションも最初のユーザーセッションに適用されます。私はアプリのヘッダーに名前が表示されているので、これを知っています。

サーバーIIS7、ASP.NET 2.0 C#

私はまだこれを可能にすることができますどのように信じることはできませんが、私が求めている理由である解決策を見つけることができません。

ありがとうございます事前にありがとうございます

+0

複数のブラウザウィンドウを同時に開きますか? – Xaisoft

+4

あなたは本当にこれであなたを助けるために誰かのためのより多くの情報を提供する必要があります。間違った方法でコーディングしていると、これが混乱する可能性があります。 – Anton

+0

はい、より適切なコードです。 – Xaisoft

答えて

2

もっと詳しい情報が必要になるでしょう。 このユーザーデータを静的オブジェクトに格納しないようにしてください。このオブジェクトは複数のセッションで共有される可能性があります。

画面に最初または2番目/最後の人の名前(ログイン順)が表示されますか。 これは、出力キャッシングの場合もあります。 Webアプリケーションをトレースまたはデバッグする方法を知っていますか?正しいデータがセッションに保存されていることを確認できますか?

+0

ありがとうございました。同じリクエストでキャストしないように静的変数を1つ持っていましたが、問題ありました。ありがとうございます、私はあなたを愛しています。私の気持ち。 –

+0

あなたはそれをうまく解決しました。時にはあなたの心を失うことを開発者の生活の一部にしなければならないと考える。それはおなじみのようです。しかし、ええと、皆にあなたの愛を宣言しないでください! ;-) – Jacco

0

これは、サーバー側でデータをキャッシュしているか、プロキシレベルでキャッシュしている(不適切に)か、その情報がユーザーを適切に判断していないことを示すロジックです。それはちょうどデータベースからそれを読んでいますか?上部のページトレースをオン
http://msdn.microsoft.com/en-us/library/94c55d08.aspx

トレース=「true」を追加して、ASPNETセッションIDは、両方のセッションの間、本当にユニークであることを確認してください。彼らは一緒に結合しないので、何か他のものがここで起こっている。