多重ログインを禁止にしたいのですが…。
C♯、ASP.NET、DBはPostgresSQLという環境です。
WEBを作っているのですが、ログイン周りで悩んでいるので教えてください。
要件としては、多重ログインは許可しない、同一IDでログインに成功した場合、
先に入ったほうは強制ログアウトという話です。
たとえば、ユーザAがログインした後、別の端末からまたユーザAでログインすると、
最初にログインしたほうはログアウト状態になります。
ログイン情報を管理するテーブルを用意して、ログイン成功時に、そのユーザが
ログイン中のステータスだったら…とか考えてみたんですが、強制ログアウトへ
もって行く仕組みが思いつかず…。
何か手がかりや、参考サイト、またはサンプルなどアドバイスいただけないでしょうか。
宜しくお願いします。
No.1ベストアンサー
- 回答日時:
クッキーにログイン時刻を書き込めばいけると思いますよ。
-----------------------
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)を比較して同一なので操作継続
-----------------------
というロジックを今思いつきました。
参考程度にどうぞ
No.3
- 回答日時:
普通、後からログインしたほうに「すでにログイン済みです。
」みたいなメッセージ出してログインさせないようにすると思いますが・・・。そんなに重要な要件なのでしょうか?
そうでないなら、難しいことを考えるのはやめたほうがよいです。
No.2
- 回答日時:
ひとつの考え方ですが……。
強制ログアウト自体は、可能なのでしょうか?
もし、「この ID を強制的にログアウト」が可能であれば、ログイン処理の冒頭で、無条件にログアウトさせてしまうというのも処理の方法ではあります。
既にログインしていたらログアウト処理という方法にするのか、
ログアウト処理のほうを、「ログインしていないIDだったらなにもしない」というロジックにしておいて、ログイン処理の冒頭で、ログアウト処理という流れにするかという問題です。
ログインしてないなら、「ログインしていないIDだったらなにもしない」なので影響なし。
既にログインしていたら、(既にログインしている方のユーザーが)ログアウト処理。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
セッション管理について(同時にログインしたとき)
Microsoft ASP
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユニクロやGUのシフト管理アプ...
-
Excelのセルにユーザー名...
-
YouTubeが毎回ログインしないと...
-
インスタの乗っ取り解除につい...
-
iPhoneのiCloudメールなよです...
-
インスタの捨て垢で友達のスト...
-
星の王子さまというアプリで、 ...
-
verify@twitter.comから、メー...
-
「そのメールアドレスはすでに...
-
LINE TCBというところからLINE...
-
インターネットカフェでCD書き...
-
携帯電話を解約してもSMSの受信...
-
メールアドレスから個人を特定...
-
カカオトークについて教えてく...
-
存在しないアドレスにメールを...
-
高一男子です 僕が絶対に悪いん...
-
カカオで退会せずに、アプリだ...
-
彼氏が携帯のパスワードを急に...
-
昔に使っていたインスタグラム...
-
解約済みの iPadについて 解約...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelのセルにユーザー名...
-
YouTubeが毎回ログインしないと...
-
YahooIDをパスワード形式にした...
-
インスタの捨て垢で友達のスト...
-
iPhoneのiCloudメールなよです...
-
携帯電話を解約してもSMSの受信...
-
インスタの乗っ取り解除につい...
-
「@」(アットマーク)の無いメ...
-
メールを返信したら、英語のメ...
-
メールアドレスで上付きのハイフン
-
verify@twitter.comから、メー...
-
星の王子さまというアプリで、 ...
-
CSVファイルを添付するときにパ...
-
LINE TCBというところからLINE...
-
メールアドレス 上バーの入力...
-
ユニクロやGUのシフト管理アプ...
-
インスタのアイコンについてるN...
-
インスタのアカウントの消し方...
-
高一男子です 僕が絶対に悪いん...
-
メールをパスワードつきで送る方法
おすすめ情報