0

私は Web アプリケーションを作成していますが、それをシングル ユーザー アプリとして作成したいと考えています (他のブラウザでも他のシステムにログインできません)。

1 つの解決策は、ユーザーがログインしたときにデータベースにテーブル フィールドを設定し、ログアウトしたときにリセットすることです。

しかし、問題は、予期しないイベント (ブラウザーのクラッシュ、停電、ネットワークの問題など) が発生した場合です。

この目標を達成するための最良の方法は何ですか?

ありがとう

4

2 に答える 2

0

あなたができる方法はありません。

NAT を実行するルーターの背後にあるユーザー A と B を想像してください。つまり、両者はインターネット上で同じ IP アドレスを持っています。

ブラウザにデータを保存せずに、どれがどれであるかをどのように判断しますか?

ブラウザにデータを保存する場合、異なるブラウザに単一のログインを持つことはできません

于 2013-05-18T11:30:28.110 に答える
0

あなたの解決策は正しいです。この操作のためにデータベースにフィールドを設定する必要があります。ただし、ブラウザのクラッシュやその他のイベントの場合は、タイマーを設定する必要があります。指定された時間内にユーザーが何もしない場合は、ログアウトする必要があります。コンソール アプリケーションを作成して、それをサーバーのタスク スケジューラに配置するか、Linux サーバーを使用する場合は Cron ジョブを使用する必要があります。別の方法で、Sql Server データベースの SQL ジョブを作成できます。

更新: 最後の操作時間のデータベースにフィールドを設定できます。ユーザーが何らかのリンクをクリックするか、ページで作業したとき (サーバーにリクエストを送信する操作を意味します)、フィールドを現在の時刻で更新する必要があります。たとえば、30 分以内に何もしない場合は、システムがアカウントをログに記録した場合にユーザーに警告する必要があります。タスク スケジューラに配置したコンソール アプリケーションは、現在の時刻と最後の操作時刻を確認します。30 分以上の差がある場合は、ユーザーをログに記録する必要があります。

于 2013-05-18T11:38:55.030 に答える