2

したがって、2 人のユーザーが同じマシン、同じブラウザーを使用する ASP.NET の問題です。

  1. ユーザー 1 がドメインにログインします。
  2. ユーザー 1 は、一部のデータを保存せずに変更します。
  3. ユーザー 2 は別のタブでドメインにログインします。
  4. ユーザー 1 は自分のタブに戻り、データを保存します。
  5. User 1 は実際に User 2 にデータを保存しました!!

これは、次のメカニズムによって発生します。

  1. 同じブラウザの異なるタブが同じセッション ID を共有しているようです。
  2. ユーザー認証をCookieに保存しており、Cookieはタブ間で共有されています(同じドメイン)

したがって、ユーザー 1 が保存を要求すると、Cookie がユーザー 2 に更新されているため、ユーザー 2 として認識されます。

だから私は、これが起こらないようにする他の方法があるかどうか疑問に思っています. 2. どのユーザーがページを所有しているかを示すために、常にページに隠しフィールドを含めます。

よろしく、

4

3 に答える 3

0

データベースにいくつかのフィールドを追加して、ユーザーがログインしていることを追跡し、IP アドレスを取得して、そのようにアクセスを制限できます。

于 2010-07-10T15:02:46.120 に答える
0

IE8 のファイル メニューには、新しいウィンドウを開く "New Session" コマンドがありますが、これは 2 つの異なるブラウザーを使用するのとほとんど同じです。

現在のユーザーがログアウトするまでログイン フォームを非表示にすると、別のユーザーがログインしていることが認識されますが、上記のシナリオを防ぐことはできません。ログアウト プロセスがドメインのブラウザの各ページを更新できる場合、それは機能する可能性がありますが、user1 は変更されたすべてのデータを失います。

于 2010-07-10T15:54:26.543 に答える
0

特定の名前で新しいウィンドウを開くというトリックを使用し、常にそのウィンドウを使用してページを開くようにしました。

于 2010-07-16T21:37:46.377 に答える