

ASP.NETで開発をしているのですが、セッション管理について疑問です。
SQLサーバーを利用したForm認証を使っているのですが、二人のユーザが別々のマシンで同じID,パスワードを使ってログインすると、二人ともログインしてサイトを利用できてしまうのでしょうか?
それとも後から入った人が有効となって先に入った人のセッションは切れるのでしょうか?(yahooとかのサイトでは他の場所からログインしましたので現在のセッションは無効となりました。みたいなメッセージが出たような・・・)
あとからログインした人優先だとしたら、同時ログインでもOKなようにすることはできますか?
また逆に同時ログインOKな状態だとすると、後からログインした人優先モードに変更できますか?
ちょっとわかりにくいかもしれませんが、足りない情報がありましたら言ってください。追記にて情報を提示いたします。
No.2ベストアンサー
- 回答日時:
全部システムの作り込みによって可能です。
「セション=ログイン」と勘違いしていませんか?
セションはリクエスト元(ブラウザ)とサーバで保持している情報を結びつけるための手法であって、ログインと言うのはあくまでリクエスト元の状態を表す言葉に過ぎません。
多くの場合、ログイン管理にセションを利用していますが、Cookieを使っているところも少なくありません。ただ、Cookieは改ざんすることが出来るのでセションを利用するところが多いだけです。
簡単に言うと、セションはログイン管理のための技術ではなく、ログイン管理を実現するためにセションが利用できるだけです。
ログインの管理方法と言ってもシステムにより多様です。システムの仕様からログイン管理をするにはどのような機能があれば良いのかを考えてみてください。
ついでに
>「後からログインした人優先」の場合、先に入った人のセッションの強制切断の方法がわからないのです。
前述の用に考えると、セションを切るのではなく、「ログインしている」という情報さえ変更できればいいと思います。
例えば、ユーザIDをキーに自分のセションID(またはセション自身)が取得できる状態をログインしていると見なすと、セションIDさえ書き換えてしまえばログインしていない状態と見なすことが出来ます。
この場合、データ管理はDBを使ってもいいですが、HttpApplicationStateを使っても出来るかと思います。仕様を考えて最適な方法を選んでください。
この回答への補足
うむむ~(;´Д`)
今まではASP.NETで開発していなかったので、ログイン時に一意なセッションIDを生成させ、データベースで管理していましたが、今回はASP.NETで開発してみようということになりセッション管理にForm認証というものがあるので、便利そうなので使ってみたのです。
セッションを管理することができれば、ログインも管理できるようになっているかと期待していたのですが、甘かったようですね(;つД`)
ログイン時に払い出したセッションIDをDBに保存しておくことができればTempdbのStateテーブルの同じセッションID行を削除すればあとからログインした人優先にできそうなのですがTempdbにアクセスする方法や、セッションIDを取得する方法がイマイチわかりません。
もし、そのようなメソッドがあれば教えてください。
ダメならログイン管理は自前で作るしかないですね~(;つД`)

No.1
- 回答日時:
できてしまうのでしょうか、できますか、の前にどういう仕様か確認して、その仕様に沿って(そうなるように)作り込みする、とした方が安全じゃないでしょうか。
多分「後からログインした人優先」に落ち着くと思いますが、例えばログインした時の日時を利用する等すれば可能かと思います。
この回答への補足
実は両方のパターンを使い分けたいのです。
「後からログインした人優先」の場合、先に入った人のセッションの強制切断の方法がわからないのです。
DBからどこかのセッションデータを削除すればいいのでしょうか?
またご指摘のログイン日時を利用するというのも詳しく教えていただけないでしょうか。
「同時ログイン可」の場合もどう設定すべきか教えていただけると助かります。設定だけでは無理でしたら、開発手法のアドバイスをいただけると助かります。
申し訳ありませんがよろしくお願いします
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
WScript??
-
複数のヤフーIDの画面ウィンド...
-
PHPからWindowsログインユーザ...
-
フォーム認証でのパスワードロック
-
Session_OnEndイベントスクリプ...
-
ASPを使用してActiveDirectory...
-
MFCでグリッド
-
セッションIDを取得したい
-
asp.NET初心者です。「 ’Contex...
-
getParameterで値が取得できず...
-
JSPで使用不可
-
前の画面の情報を保持するには?
-
HTMLだけでボタン作成
-
INPUTのボタン周囲のスペース
-
サーバー上の全セッション変数...
-
コネクション・セッション・ト...
-
ASP.NET(VB)でのデータグリッド...
-
HSPでIEを操作したいのですが
-
SPREADでカーソルの位置を1行目...
-
アドレスバーのないウィンドウ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
えきねっとのログイン画面はどこ?
-
PHPからWindowsログインユーザ...
-
Global.asaについて
-
VB2017で、WEBサイト...
-
セッション管理について(同時...
-
windows統合認証とform認証の併用
-
特定の端末からのみWebシステム...
-
ログインフラグがわかりません。
-
戻るボタンで、ログイン中を維...
-
教えてgooログインについて
-
仮想通貨ウォレット ゲートハブ
-
VBAでHTTPログイン
-
vbsでのie操作について
-
複数のヤフーIDの画面ウィンド...
-
オンラインゲームについて
-
2重ログインのチェック
-
別画面で起動するとログインセ...
-
phpmyadminでDBが作成できない。
-
XMLHTTPを用いて認証が必要なUR...
-
Enterキーでログイン
おすすめ情報