1

サーバーでホストされている ASP.Net Web アプリケーションがあります。

ネットワーク接続を介して同じユーザーが異なるマシンにログインすることを制限したいが、特定の条件を満たす必要があります。

そこで、User テーブルに 3 つの新しい列を追加して、同じユーザーが同じマシンにログインしているか、別のマシンにログインしているかを追跡できるようにすることを考えました。

これらの列は次のようなものです:

  • IsLoggedIn: 特定のユーザーがすでにログインしているかどうかを確認します。
  • SessionID: 同じユーザー インスタンスが開かれているかどうかを確認します。
  • IPAddress: 同じユーザーが同じ PC にいるか、別の PC にいるかを確認します。

これは、以下の条件のいくつかを満たす必要がありますが、一部の条件を満たしていません。

条件は次のとおりです。

  1. 両方のコンピューターが同じ LAN 上にあります。
  2. 各コンピューターは、さまざまな場所からインターネット経由でアプリケーションにアクセスしています。
  3. 各コンピューターは、同じ場所からインターネット経由でアプリケーションにアクセスしています。
  4. 一部のアプリケーションがホストされているため、IP アドレスだけでは異なるコンピューターを区別するのに十分ではありません。
  5. 一部のユーザーは、ログアウトせずにブラウザを閉じます。そのため、この状況ではセッションが終了しない場合があります。

私のアプリケーションを満たすためにこれらすべての条件を達成する方法を誰かが提案できますか? 主に4番と5番。

前もって感謝します。

4

1 に答える 1

0
  1. Cookie を使用して、ユーザーがログインしたマシンを特定できます。ハードウェア キーによるコンピュータの識別は、セキュリティ上の問題になるため、私が知っている限りでは機能しません。ASP.NETアプリケーションでクライアント マシンを一意に識別する方法は?

  2. たとえば、ユーザーを新しいマシンにログインさせ、その時点で既存のセッションがあればそれを閉じることができます。または、他のすべてのセッションを閉じますか? などの質問をポップアップ表示することもできます。

于 2012-06-08T14:22:03.480 に答える