- ベストアンサー
C#とASP.NETでの多重ログイン禁止について
- C#とASP.NETでの多重ログイン禁止について悩んでいます。ログイン情報を管理するテーブルを用意し、ログイン成功時にログイン中のステータスを確認し、先にログインしたユーザを強制ログアウトする仕組みを作りたいのですが、具体的な方法がわかりません。
- C#とASP.NETでの多重ログイン禁止についての方法を教えてください。同じユーザが複数の端末でログインできないようにする方法はありますか?ログイン情報を管理するテーブルを使って実現したいと思っています。
- C#とASP.NETでログイン周りの問題について相談です。ユーザAがログインしている状態で、別の端末からまたユーザAでログインすると、最初にログインしたユーザがログアウトされるような仕組みを作りたいです。具体的な方法や参考サイト、サンプルなどアドバイスいただけないでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
クッキーにログイン時刻を書き込めばいけると思いますよ。 ----------------------- 15:00 A端末でユーザーIDを"hoge"でログイン →A端末クッキーにログイン時刻15:00と書き込み →DBに"hoge"のログイン時刻15:00と書き込み ----------------------- ↓ A端末で画面を開く際にクッキーのログイン時刻(15:00)="hoge"のDBログイン時刻(15:00)を比較して同一なので操作継続 ↓ ----------------------- 15:30 B端末でユーザーIDを"hoge"でログイン →B端末クッキーにログイン時刻15:30と書き込み →DBに"hoge"のログイン時刻15:30と書き込み ----------------------- ↓ A端末で画面を開く際にクッキーのログイン時刻(15:00)="hoge"のDBログイン時刻(15:30)を比較してDBログイン時刻が15:30へ更新されていて一致しないのでログアウト処理実行 B端末で画面を開く際にクッキーのログイン時刻(15:30)="hoge"のDBログイン時刻(15:30)を比較して同一なので操作継続 ----------------------- というロジックを今思いつきました。 参考程度にどうぞ
その他の回答 (2)
- kotoby2003
- ベストアンサー率15% (280/1755)
普通、後からログインしたほうに「すでにログイン済みです。」みたいなメッセージ出してログインさせないようにすると思いますが・・・。 そんなに重要な要件なのでしょうか? そうでないなら、難しいことを考えるのはやめたほうがよいです。
- 麻野 なぎ(@AsanoNagi)
- ベストアンサー率45% (763/1670)
ひとつの考え方ですが……。 強制ログアウト自体は、可能なのでしょうか? もし、「この ID を強制的にログアウト」が可能であれば、ログイン処理の冒頭で、無条件にログアウトさせてしまうというのも処理の方法ではあります。 既にログインしていたらログアウト処理という方法にするのか、 ログアウト処理のほうを、「ログインしていないIDだったらなにもしない」というロジックにしておいて、ログイン処理の冒頭で、ログアウト処理という流れにするかという問題です。 ログインしてないなら、「ログインしていないIDだったらなにもしない」なので影響なし。 既にログインしていたら、(既にログインしている方のユーザーが)ログアウト処理。