Запрет многократного входа в систему с использованием одного имени пользователя и пароля - PullRequest
14 голосов
/ 19 декабря 2009

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

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

Мы должны помнить следующее:

  1. Если пользователь закроет браузер без выхода из системы.
  2. Если время сеанса истекло.

Буду признателен за любую помощь в этом.

Ответы [ 12 ]

0 голосов
/ 19 декабря 2009

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

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

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

Имеет ли это смысл для вашего приложения?

0 голосов
/ 19 декабря 2009

Я бы отслеживал последний известный IP-адрес каждого пользователя и отметку времени, когда они последний раз были на этом IP-адресе. Затем вы можете просто заблокировать доступ с других IP-адресов на 5 минут, час или как угодно.

Всякий раз, когда IP-адрес переключается, вы можете: а) истечь старый сеанс пользователя, поэтому он вынужден снова войти в систему и б) увеличить счетчик на пользователя (который вы можете обнулять каждый час). Если значение счетчика превышает 5 (или что-то еще), вы можете заблокировать любой доступ к учетной записи пользователя на более длительный период времени.

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