• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:多重ログインを禁止にしたいのですが…。 )

C#とASP.NETでの多重ログイン禁止について

このQ&Aのポイント
  • C#とASP.NETでの多重ログイン禁止について悩んでいます。ログイン情報を管理するテーブルを用意し、ログイン成功時にログイン中のステータスを確認し、先にログインしたユーザを強制ログアウトする仕組みを作りたいのですが、具体的な方法がわかりません。
  • C#とASP.NETでの多重ログイン禁止についての方法を教えてください。同じユーザが複数の端末でログインできないようにする方法はありますか?ログイン情報を管理するテーブルを使って実現したいと思っています。
  • C#とASP.NETでログイン周りの問題について相談です。ユーザAがログインしている状態で、別の端末からまたユーザAでログインすると、最初にログインしたユーザがログアウトされるような仕組みを作りたいです。具体的な方法や参考サイト、サンプルなどアドバイスいただけないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • mako_tyo
  • ベストアンサー率37% (61/161)
回答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)を比較して同一なので操作継続 ----------------------- というロジックを今思いつきました。 参考程度にどうぞ

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • kotoby2003
  • ベストアンサー率15% (280/1755)
回答No.3

普通、後からログインしたほうに「すでにログイン済みです。」みたいなメッセージ出してログインさせないようにすると思いますが・・・。 そんなに重要な要件なのでしょうか? そうでないなら、難しいことを考えるのはやめたほうがよいです。

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

ひとつの考え方ですが……。 強制ログアウト自体は、可能なのでしょうか? もし、「この ID を強制的にログアウト」が可能であれば、ログイン処理の冒頭で、無条件にログアウトさせてしまうというのも処理の方法ではあります。 既にログインしていたらログアウト処理という方法にするのか、 ログアウト処理のほうを、「ログインしていないIDだったらなにもしない」というロジックにしておいて、ログイン処理の冒頭で、ログアウト処理という流れにするかという問題です。 ログインしてないなら、「ログインしていないIDだったらなにもしない」なので影響なし。 既にログインしていたら、(既にログインしている方のユーザーが)ログアウト処理。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 多重ログイン防止するための開発について

    ASPの社内システムで、多重ログインを防止をするのですが、社内環境によってDHCP(ランダムのIP)を採用している場合があり、DBなどでIPを管理するマスタでは対応しきれません。 この手の開発の実例は当然あるかと思われますが、 上記のようなシステム構築においてどのようなシステム設計が妥当でしょうか。 ご教授をお願いいたします。 ルール) ・ログイン状況をDBで持たせるのは可能 ・Sessionでのログイン状況を持たせるのは可能 ・cookieでのログイン状況を持たせるのは不可 ・ログイン状況の有効が切れる条件としては以下の3点  1:ログアウトをした場合  2:放置された状態で30分経過された場合  3:ブラウザを閉じられた場合 以上です。 大変お手数をおかけしますが、宜しくお願いします。 なお、情報不足の場合は随時補足いたします。

  • WinXPで多重にログインの方法

    タイトルだけだと判り難いので・・・ 例えばAのユーザーアカウントでログインしている時に AログアウトなしでBのアカウントで入る事は可能なのでしょうか? 2このアカウントで同時に入ってる状態って事です。 判る方いましたら教えて下さい。

  • 現在ログインしているユーザー・・・

    おはようございます。 1 現在ログインしているユーザーにログアウトするよう告知して 2 強制的にログアウトさせる ことがしたいのですが、可能でしょうか?

  • DB2のログインについて

    DB2初心者です。  AIX5.2+DB2 8.1環境を使用しております。DB2へのアクセスはこのUnixシステムからのみと想定してください(すなわち、DB2へのログインクライアントもサーバーも同じ AIX上で動いているという想定です)。 この環境のもと、DB2のインスタンスユーザであるdb2inst1からDB2上のsampleへログインしようと試みます。  > db2 connect to sample user db2inst1 using xxxxx(password) すると以下のメッセージが返されます。 SQL30082N Attempt to establish connection failed with security reason "24" ("USERNAME AND/OR PASSWORD INVALID"). SQLSTATE=08001  次に、以下のコマンドを実行します。 db2 connect to sample user db2inst1 using xxxxx new yyyyy confirm yyyyy SQL30083N Attempt to change password for user id "db2inst1" failed with security reason "" (""). SQLSTATE=08001  となり、エラーでログインできません。しかし、以下の  コマンドでアクセスすると、    > db2 connect to sample DB2へ正しくアクセス可能です。  db2 connect to sample user xxx using xxx形式で  アクセスするにはどうすればよいのでしょうか。  ちなみに、DB2の設定は、インストール直後の状態です。 dbm cfgのAuthenticationはサーバーにしております。これをClientにしても結果は同じでした。また、sampleには特にGrant connect/loadも実行しておりません。  以上よろしく御願い申し上げます。

  • PHPでのログイン機能について

    今ログイン機能を作成しているのですが ユーザがIDとパスを入力した後にDBと比較し 合っていればログイン成功。合ってなければ戻る という処理を行っています。 この場合、ログインが成功した後にユーザ名、ユーザIDを セッションかクッキーに保存しておきたいと考えているのですが どちらに保存しておいた方がよいのでしょうか。 また、よくセッションIDでログイン状態を管理している。等という話を 聞きますが、この機能はどのように実現しているのでしょうか。 よろしくお願いします。

    • 締切済み
    • PHP
  • ひとつのPCで複数人がログインする方法

    ユーザログイン時の.bashrc,.bash_profileの動作を検証したいと思っています。 そこでXを立ち上げた状態でユーザAからユーザBをログインしたいと思うのですが、可能でしょうか? ユーザAでログインした場合は、いったんログアウトしてxdmまで戻らないとユーザBはログインできないものでしょうか? Suコマンドでユーザを変えた際は、ログインしたことになるのでしょうか?

  • ログインID・パスワード認証時の大文字・小文字区別

    ASPにおいてログイン画面よりログインID・パスワードを入力した後、SQLサーバのDBを参照し存在する場合のみログイン成功としていますが、大文字・小文字は判別していません。 例えばDB上ではパスワードが「test」でも「TEST」と入力すればログイン成功となります。 大文字・小文字を区別して認証する方法はないでしょうか?? よろしくお願いします!!!!

  • ログイン画面作成

    ASP.NETの初心者ですが、ログイン画面の作成取り掛かっています。 しかし、プログラミングの部分まったく進みません。。 機能としては、 初回起動のときデータベースとの接続を行う。 接続成功の場合はログイン画面を表示する。 失敗の場合はエラーメッセージを表示する。 ログインボタン押下 ユーザID入力あり チェック:半角や桁数チェック(false) エラーメッセージ パスワード入力あり チェック:半角や桁数チェック(false) エラーメッセージ DBに登録されているユーザIDとパスワードと一致するとき セッション変数に ユーザIDの値を設定する。 次の画面(メニュー)に遷移する。 一致しなかった場合 ログイン画面に最遷移 環境は.NET2003 DB: Access 言語VB 大体でいいですが、どういうふうにやるのか教えていただけませんか よろしくお願いします。

  • 他ユーザーの強制 logout。

     リモートログインした際、logout せず遠隔端末との通信が切断してしまい、w などで確認するとそのユーザーが login したままの状態になっている場合、これを強制的に logout さす対応方法を御教示ください。

  • ログインしたら他からログインできないようにしたい

    PHP+MySQLで会員サイトを作っています。 1. 誰か一人がログインしていたら、そのログイン会員と同じIDとパスワードでログインしようとするとログインできないようにするか、元のログインしていた人が強制的にログアウトするようにしたい。 2. 一人のユーザーが複数アカウントを作って会員サイトを使いたい放題にするのを阻止したい。 そのため、「PC1台からは必ず1ユーザーのみしかログインできないようにしたい」です。 (複数PCを使われたら仕方ないかもしれません・・・) よく銀行サイトのようにログイン中に他のブラウザや端末からログインしようとすると「すでにログイン中です。ログインし直しますか?」のようになりますが、1.はこんな感じを考えています。 仕組みとしてはどのようにするのが良いのでしょうか? 1. ログイン時にセッションIDを作り、データベースにそのセッションIDとIPアドレスを記憶しておいて、Web上で何か操作するたびにブラウザ側のセッションIDとデータベース側のセッションIDを比べて同じなら操作を実行し、違うなら操作できないようにする。 2. ログイン中に別のブラウザからログインしようとすると、データベース側に保存されているセッションIDが違うのでログインできないようにする。 3. 同じIPアドレスですでにログイン中の場合、同じPCからは他のアカウントでログインできないようにする。 こんな感じでしょうか? 何か問題点やそもそもこの仕組は間違っていて常套手段があるなどありましたらお教えください。 なんとなく、IPアドレスのチェックはWiMAXなどは時間とともに変わったりするのであまり良くはないかもしれません。 どうぞよろしくお願い致します。

    • ベストアンサー
    • PHP