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で質問しましょう!
似たような質問が見つかりました
- PHP 「ログイン機能を持たせる」説明が気難しいです。 2 2022/10/11 02:59
- Chrome(クローム) 仕事で使っているGmailがログインできません。 ログインすると、 「組織がプロフィールの作成を求め 1 2022/06/16 08:40
- PHP ログインした掲示板ですが、直接開かないような設計するには? 2 2022/10/29 16:30
- PHP PHPのセッション有効期限について 5 2023/06/14 12:40
- PHP MySql PHP 2つのテーブルをJOINで結合 user_idで抽出 1 2023/01/03 14:04
- Chrome(クローム) 【Google】「同期は有効です」と表示されているがブックマークが同期されていない 2 2022/11/17 13:32
- その他(セキュリティ) スマホで使用する場合のパスワード設定はどうしてますか? 4 2023/04/03 18:01
- その他(セキュリティ) アカウントの乗っ取りで質問です。長いです。 先月ツイッターの乗っ取りにあい、アカウントを全て新しくし 2 2022/03/25 20:47
- その他(セキュリティ) PCとスマホのクラッキング、ハッキングに困っています 2 2022/10/09 22:36
- その他(セキュリティ) Apple ID 1 2023/06/18 11:46
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでHTTPログイン
-
勝手にログアウトされてしまい...
-
バッチファイルでログイン後の...
-
PHPからWindowsログインユーザ...
-
INPUTにnameがない場合のsubmit
-
戻るボタンで、ログイン中を維...
-
Enterキーでログイン
-
ASPで画面間のパラメタ受け渡し
-
異なるformのsubmitボタンを同...
-
Accessの画面更新を一時的に停...
-
HTTPリクエストヘッダーの設定...
-
ACCESS2010 WEBブラウザーコン...
-
今更、VBAでRPA、キーボード操...
-
SUBMITボタンを表示させないでS...
-
パワーポイント 円グラフにつ...
-
【C言語】JPEGのEXIF情報を書き...
-
【HTML /CSS】ヘッダー右上のず...
-
Webブラウザの閉じるボタン無効...
-
HTMLボタンの文字色を変え...
-
複数選択のListBoxでClickイベ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPからWindowsログインユーザ...
-
VBAでHTTPログイン
-
セッション管理について(同時...
-
戻るボタンで、ログイン中を維...
-
フォーム認証でのパスワードロック
-
ログインフラグがわかりません。
-
特定の端末からのみWebシステム...
-
ユーザー環境変数の一覧
-
【php】会員登録ログイン時シス...
-
PWを入れると別のページに飛ん...
-
ASP.NET MVC 最初からあるログ...
-
PHPで作成するログイン画面の作...
-
MAC版DW8 ログインパスワードの...
-
セレニウムで自動ログインする方法
-
ログイン履歴
-
複数のヤフーIDの画面ウィンド...
-
ログイン状態が切れないように...
-
PHPでログイン機能実装
-
Windows認証でDBにアクセスでき...
-
DFDの書き方について
おすすめ情報