закрыть сеанс в asp.net в браузере - PullRequest
2 голосов
/ 21 октября 2009

Итак, у меня есть веб-сайт, на котором я использую события начала и окончания сеанса для отслеживания и ограничения открытых экземпляров нашего веб-приложения, даже на одном компьютере. На странице выгрузки я вызываю метод с включенной сессией, который затем вызывал session.abandon.

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

Ответы [ 3 ]

1 голос
/ 29 сентября 2011

Я всегда использовал это, чтобы убедиться, что сессия пользователя прошла:

HttpContext.Current.Session.Abandon();
0 голосов
/ 22 марта 2010

FormsAuthentication.SignOut (); истекает cookie-файл аутентификации, но не удаляет cookie-файл сеанса до истечения времени ожидания, указанного в файле web.config для состояния сеанса. Если вы хотите немедленно удалить сеанс, вручную истекайте cookie сеанса, как показано ниже.

var myCookie = new HttpCookie ("ASP.NET_SessionId") {Expires = DateTime.Now.AddDays (-1D)}; Response.Cookies.Add (MyCookie);

0 голосов
/ 21 октября 2009

Если вы используете FormsAuthentication, вы можете использовать:

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