Asp.net уничтожает сеанс по идентификатору сеанса

Когда один пользователь входит на мой сайт, у этого пользователя есть сеанс [идентификатор сеанса, например: xxxx-xxxx-xxxx-xx], когда он снова входит в систему в другом месте, у него есть другой сеанс [идентификатор сеанса, например: гггг-гггг-гг-гггг], КАК МОГУ ЛИ Я УНИЧТОЖИТЬ ПРЕДЫДУЩИЙ СЕСС [id сеанса, например: xxxx-xxxx-xxxx-xx], после того, как он снова войдет в систему с помощью сеанса [id сеанса, например: yyyy-yyyy-yy-yyy].

Уничтожить один сеанс в другом сеансе! Возможно ли это? Большое спасибо!


person cloud    schedule 13.02.2012    source источник
comment
Что вы имеете в виду, если он снова войдет в систему в другом месте? То, что вы просите, не должно быть необходимым. Похоже, вы делаете это неправильно.   -  person Klaus Byskov Pedersen    schedule 13.02.2012


Ответы (2)


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

поместите регистратор в событие Global.asax в событии Session_End, и вы сможете отслеживать, когда неиспользуемые сеансы закрываются, читая файл журнала.

person Davide Piras    schedule 13.02.2012
comment
это не то, что я хочу. когда этот пользователь снова войдет в систему, вы обнаружите, что предыдущий сеанс все еще существует, также может делать что-то, потому что у них другой идентификатор сеанса. я хочу уничтожить предыдущую сессию для безопасности. В любом случае, спасибо. - person cloud; 13.02.2012
comment
попробуйте использовать разные браузеры (IE, FF, CHROME...) для входа на тот же сайт. - person cloud; 13.02.2012
comment
понял, проверьте это: stackoverflow.com/questions/2645102/ - person Davide Piras; 13.02.2012

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

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

Мое решение:

  1. При входе в систему сохраните SessionID в базе данных со ссылкой на учетную запись пользователя.
  2. В файле Site Master (или любом другом файле, которым вы можете поделиться со всеми страницами вашего сайта) сравните текущий идентификатор сеанса (HttpContext.Current.Session.SessionID) с сохраненным идентификатором сеанса.
  3. Если они не совпадают, отказаться от сеанса (Session.Abandon).

Это простое решение, но оно должно решить проблему.

person Shaun College    schedule 12.11.2014