Запретить пользователям вход в одну и ту же систему с использованием разных браузеров (IE и FF) - PullRequest
0 голосов
/ 12 апреля 2011

У нас есть веб-приложение, в которое пользователи могут входить.

Теперь нам нужно, чтобы один и тот же пользователь не мог иметь возможность войти в систему с использованием разных браузеров.

В основном в настоящее время пользователь использует дваразные браузеры (IE и FF) могут одновременно входить в одну и ту же учетную запись.Когда вы нажимаете кнопку входа в систему, можно ли сделать недействительными все другие имена входа для этой учетной записи.

Каков наилучший из возможных подходов для этого?

PS: мы используем Struts, Spring иHibernate в нашем веб-приложении.

Спасибо!

Ответы [ 3 ]

2 голосов
/ 12 апреля 2011

Лучше всего делать это на стороне сервера. Вы можете отслеживать пользователей, вошедших в систему, в контексте вашего приложения.

Ну, маленький намек. Используйте фильтр сервлетов, скажем, AuthFilter, и сделайте проверку, может быть isAlreadyLoggedIn(), помимо других проверок, таких как имя пользователя / пароль и т. Д. Теперь, после этой проверки, вы либо ... Вы хотите, чтобы пользователь пытался войти в систему, показывал сообщение «пользователь уже вошел в систему», или вы можете позволить пользователю войти в систему и сделать недействительным предыдущий сеанс. Как обсуждено здесь .

0 голосов
/ 12 апреля 2011

Google использует некоторый механизм ip-адреса до , чтобы выйти из системы пользователя, вошедшего в систему на другом компьютере, вместо выхода из системы в том же браузере или вкладке .

Может быть, мы можем использовать geoip database Geolitecity , чтобы сохранить пользовательский ip + Balusc ответ пользователя хранение сеанса с использованием пользователя в качестве ключа и IP-адреса для решения.

Есть столбец isLoggedIn в базе данных. Установите значение Y , если он вошел в систему, если тот же пользователь входит в систему с другого компьютера или браузера, аннулирует сеанс. Имейте в виду, чтобы установить его на N , если сессия истекает.

* Для лучших Читайте ответ Балуска *

предотвращение множественного входа в систему с использованием одинаковых имени пользователя и пароля с использованием HttpSessionBindingListener.

0 голосов
/ 12 апреля 2011

Вы можете сохранить информацию о вошедшем в систему пользователе в базе данных или получить ее из контекста приложения. и если пользователь уже вошел в систему, не позволяйте ему сделать еще один сеанс.

...