2015-10-22 2 views
1

У меня есть внешний сайт (Back end SQL Server и ASP.NET), где мне нужна функция, которая, если пользователь из того же идентификатора уже зарегистрирован , и он пытается снова войти в систему из какого-либо другого браузера или через какой-то другой канал, его предыдущая сессия должна быть истекла.Когда пользователь заходит из браузера, его предыдущий сеанс должен истекать

Итак, для чего я должен продолжать?

+0

Это немного расплывчато, как вы храните сеансы? Быстрый ответ здесь также, можно ли добавить в новый код сеанса запрос для удаления всех остальных сеансов из таблицы? – Arcath

ответ

0

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

Например:

  • Пользователь A входит в в Safari на своем ноутбуке
  • идентификатор сеанса генерируется и хранится в переменной базы данных и сеанса
  • пользователь A переходит на другую страницу
  • Идентификатор сеанса в базе данных сравнивается с переменной сеанса
  • Идентификаторы матча, пользователь все еще находится в
  • бревен Пользователя А при помощи Chrome на своем телефоне
  • идентификатор сеанса генерируется и сохраняется (перезапись предыдущего) в переменных базах данных и сеанса
  • Пользователь A просматривает на его ноутбук на новую страницу
  • Идентификаторы не совпадают, перенаправление на страницу входа

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

Смежные вопросы