0

ユーザーが MVC webapp にログインすると (ランタイムが実行されるFormsAuthentication.SignIn(..)と)、そのユーザーは Cookie を受信し、その Cookie を使用してサイトを操作し続けることを理解しています。

ただし、ユーザーはシークレット ウィンドウまたは別の PC から再度ログインし、両方の場所から同時にサイトにアクセスできます。私は彼がそれをするのを防ぎたい。

この問題の解決策は近いところにあると思いますが、Google で検索したり、MVC フォーム認証クラスを掘り下げたりしても、作業できるものは何もありませんでした。

では、ユーザーがどこか新しい場所でログインに成功したとき、最後のユーザーのログイン情報を強制的にサインオフするにはどうすればよいですか (Web サーバー内に保存されている Cookie だと思いますが、間違っている可能性があります) 。

4

2 に答える 2

1

実装する必要があります

Application_AuthenticateRequest

global.asax ファイルで、ユーザー ID がまだ正しいことを検証します。たとえば、ユーザーに関連するすべてのセッションと、ユーザーが使用したクライアントを追跡する必要があります。ユーザーをサインアウトする場合は、前述の方法で Cookie のリセットで応答できます。

于 2013-08-13T13:17:53.153 に答える
0

これを行う唯一の方法は、ユーザーのログイン情報をテーブルに格納することです。そのため、ユーザーが再度ログインしようとすると、テーブルをクエリすることで、別の場所にログインしていることを確認できます。ユーザーがログアウトしたら、テーブルから行を削除します。

Cookie を使用しても何もできないことを忘れないでください。Cookie には、フォーム認証チケットのみが含まれます。これは、認証モジュールによって使用され、受信したリクエストが認証されているかどうかを確認します。そして、呼び出しはステートレスなので、Cookie を見ただけでは何も判断できません。

于 2013-08-13T13:16:40.993 に答える