アカウントごとに一度に 1 人のユーザーのみがログインするようにするにはどうすればよいでしょうか?
Cookie が永続的であると仮定します。
アカウントごとに一度に 1 人のユーザーのみがログインするようにするにはどうすればよいでしょうか?
Cookie が永続的であると仮定します。
通常、最良の方法は、最後のログインをチェックするプロバイダーにカスタマイズを実装し、コードにメソッドを追加してユーザー アクションを追跡することです。
重要なのは、ユーザーが最後に何かをしたかログアウトしたかを知る必要があるということです。そこから、アカウントが実際に準備ができているかどうかを判断できます。コードでこれらの要素の追跡を設定すると、メンバーシップ プロバイダーを変更して、アカウントがログインできることを確認できます。
概念的には、どのように応答するかを決定する必要があります。ユーザー A がログインしていて、ユーザー B が (同じ資格情報を使用して) ログインしようとした場合:
また
(2) ユーザー B にログインするかどうかを判断するために、ユーザー A がログアウトしたことを確実に知る必要があるため、問題があります。 . おそらく、30 秒ごとに Web サイトに ping を送信する AJAX ウォッチドッグのようなものです。
(1) また、いくつかの作業が必要です。ユーザーがログインすると、Cookie の値を (おそらくデータベースに) 保存し、このユーザーに対して発行された Cookie のリストに追加します。そうすれば、発行された最後の Cookie (最後のログイン) のみが受け入れられます。以前の Cookie のいずれかが表示された場合は、そのユーザーをログアウトさせます。
ユーザーのIDでテーブルを作成します。ユーザーがログインするたびに、システムは一意の ID を作成します。この ID は、ユーザーの ID に対してテーブルとセッション変数に格納されます。
ポスト バックまたはページ プロセスごとに、セッション変数に保存されているキーが、データベースに保存されているそのユーザーの最後のキーと照合されます。2 番目のユーザーが同じアカウントでログインすると、システムは新しい一意の ID を作成します。そのため、最初のユーザーがページを投稿したりページを変更したりすると、セッション変数に格納されているキーはテーブル内のキーとは異なります。アカウントは別の場所で開設されました。
テーブルから古い ID を削除する夜間プロセスをスケジュールします