Один пользователь за раз

Я пытаюсь реализовать, чтобы только один пользователь мог войти в систему с заданными учетными данными.

Я проверяю это во время входа в систему с помощью этого кода:

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

Это работает нормально. У меня проблема, когда пользователь отметил «Запомнить меня». Сценарий: 1. Если пользователь входит в систему с установленным флажком «Запомнить меня». Закройте браузер. 2. Теперь с другого компьютера или другого браузера войдите в систему с теми же учетными данными. Он может войти. 3. Но если пользователь снова войдет в систему из Браузера-1/компьютера-1, он сможет войти в систему, так как браузер имеет постоянные файлы cookie.

Может ли кто-нибудь предложить мне, как я могу решить эту проблему ??

Заранее спасибо


person Samy    schedule 12.05.2010    source источник


Ответы (1)


Я предполагаю, что файл cookie содержит идентификатор сеанса входа в систему. Просто убедитесь, что каждый пользователь может быть связан только с одним идентификатором сеанса за раз. Каждый новый вход заменяет любой существующий идентификатор сеанса для пользователя новым. И, конечно же, любой запрос с использованием идентификатора сеанса с истекшим сроком действия перенаправляется прямо на страницу «Вы не вошли в систему, возможно, вы вошли в систему где-то еще».

person Marcelo Cantos    schedule 12.05.2010
comment
Я полагаю, что мы можем обрабатывать каждый запрос аутентификации в его событии. Но в этом случае у нас нет переменной сеанса. - person Samy; 13.05.2010