Какова область HTTP-сессии? - PullRequest
19 голосов
/ 18 января 2012

Какова область действия HTTP-сессии?

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

Ответы [ 3 ]

14 голосов
/ 18 января 2012

Это будет зависеть от того, как вы отслеживаете сеансы в вашем приложении.

По умолчанию они отслеживаются HttpOnly cookie .Это означает, что если пользователь закрывает текущую вкладку, он не теряет сеанс.Если он закрывает браузер, хотя он теряет сеанс.

Если вы используете режим без файлов cookie для отслеживания сеансов (cookieless="true"), ASP.NET добавит пользовательский токен ко всем URL-адресам, что означает, что пользователь может войти в систему с 2 различными сеансами на 2 разных вкладках одной и той жеЭкземпляр браузера.

5 голосов
/ 18 января 2012

Ответ на все ваши вопросы: «Это зависит».

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

В IE есть пункт меню для «Нового окна» и один для «Нового сеанса».Параметр «Новое окно» сохранит тот же сеанс, параметр «Новый сеанс» откроет новое окно с другим сеансом.Вы также можете получить новый сеанс в IE, удерживая клавишу Shift при запуске браузера.

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

3 голосов
/ 18 января 2012

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

Однако приложение может также передавать идентификатор сеанса через URL.В этом случае каждая вкладка / окно будет иметь свой собственный сеанс, если вы не откроете его через ссылку с действительным идентификатором сеанса.

...