1

特定の資格情報でログインできるのは 1 人のユーザーのみであることを実装しようとしています。

このコードでログイン時にこれをチェックします:

MembershipUser objectUser = Membership.GetUser(Login1.UserName);
    if (objectUser != null)
    {
        boolIsAlreadyLoggedIn = objectUser.IsOnline;
    }

これはうまくいっています。ユーザーが「Remember Me」をチェックしたときに問題が発生しました。シナリオ : 1. ユーザーが [Remember Me] をオンにしてログインした場合。ブラウザを閉じます。2. 別のマシンまたは別のブラウザーから、同じ資格情報でログインします。彼はログインできます。3. ただし、ユーザーが Browser-1/machine-1 から再度ログインすると、ブラウザには永続的な Cookie があるため、ログインできます。

この問題を解決するにはどうすればよいですか?

前もって感謝します

4

1 に答える 1

0

Cookie にはログインごとのセッション ID が保持されていると想定しています。各ユーザーが一度に 1 つのセッション ID にしか関連付けられないことを確認してください。新しいログインごとに、ユーザーの既存のセッション ID が新しいものに置き換えられます。もちろん、有効期限が切れたセッション ID を使用したリクエストは、「ログインしていません。別の場所でログインしている可能性があります」というページに直接移動します。

于 2010-05-12T09:52:55.417 に答える