2012-01-11 17 views
0

セッションでuserIdを保持するログインページにセッションを使用しています。 2人の異なるユーザーが、同じシステムと同じブラウザを使用してブラウザで別々のタブを使用してログに記録されている場合、最後にログインしたユーザーにuseridのセッション値がリセットされます。どうして?セッション管理

+0

これはasp.netまたはasp-classicのいずれかで、両方ではありません。タグを修正してください。 –

+0

セキュリティで保護されたセッション管理に関する優れた記事は、非常に便利です。http://www.linuxforu.com/2011/02/securing-apache-part-6-attacks-session-management/ – Sam

答えて

0

セッションはタブ間で共有されるため、不可能です。彼らは別のブラウザを使用する必要がありますか最後のユーザセッションは前のユーザセッションを削除します

+0

セッションはタブ間で共有されません。クッキーはタブ間で共有されます(明らかに、それらのタブが同じドメインを指していると仮定します)。したがって、クッキーを使用してユーザーセッションを追跡している場合、それらのクッキーが共有される結果、セッションも共有されます。しかし、認証されたユーザーを追跡する方法を変更し、Cookieを使用しない場合、セッションはタブ間で共有されません。 –

+1

真実、私がセッションを言ったとき、私はクッキーが使われていると仮定していました。 web.configでurlを使用するcookielessオプションを設定すると動作します。しかし、安全ではないので、なぜ私はそれについて考えることもしませんでした。 – H27studio

5

認証されたユーザをクッキーで追跡している場合、ブラウザタブ間でクッキーが共有されているため、それはほとんどのサイトで同じです。たとえばGmailを利用すると、1つのアカウントでログインした後、新しいタブを開き、Cookieが共有されるため、同じユーザーで自動的にログインします。

あなたが求めていることを達成するためには、基本的に認証されたユーザーを追跡する方法を変更する必要があります。あなたはもはやクッキーを使用しないでください。

2の可能性が頭に浮かぶ:

  • は、すべてのリクエストのクエリ文字列にセッションIDを追加セッションID
  • が含まれています各ページに隠しフィールドを使用し
6

ブラウザによってドメインのために保存された(クッキー内に)1つだけsessionIDとなり、セッションを識別するために後続のポストバック時にサーバーに返されます。

別のタブを開いて他の人物としてログインすると、最新のsessionIDが前回よりも優先されます。

同じブラウザでは異なるログインを持つことはできません。別のブラウザを使用することはできません

0

Internet Explorerは、[ファイル]メニューの[新規セッション]機能を提供しています。これにより、別のユーザーが既にログインしている間に、2番目のユーザーがサイトにログインできるようになります。ただし、別のタブで別のセッションを実行することはできません。

他のブラウザでも同様の機能が提供される場合があります。