2012-01-11 3 views
0

Я использую сеансы для моей страницы входа, которая будет содержать userId в сеансе. Если два разных пользователя регистрируются с использованием одной и той же системы и одного браузера, но с отдельными вкладками браузера, значение sessionID пользователя возвращается к пользователю, который в последний раз заходил в систему. Зачем?Управление сеансом

+0

Это либо asp.net, либо asp-classic, не оба. Исправьте теги. –

+0

Хорошая статья о безопасном управлении сеансом, которую вы найдете весьма полезной: http://www.linuxforu.com/2011/02/securing-apache-part-6-attacks-session-management/ – Sam

ответ

0

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

+0

Сессии не используются между вкладками , Куки-файлы разделяются между вкладками (очевидно, если эти вкладки указывают на один и тот же домен). Поэтому, если вы отслеживаете пользовательские сеансы с помощью куки-файлов, в результате совместного использования этих файлов, сеансы также будут доступны. Но если вы измените способ отслеживания пользователей, прошедших проверку подлинности, и не используете файлы cookie, сеансы не будут использоваться между вкладками. –

+1

Правда, когда я сказал, что сессии я принимал, что файлы cookie используются. Настройка опции cookieless для использования url в web.config работает. Но это небезопасно, поэтому я так и не подумал об этом. – H27studio

5

Если вы отслеживаете пользователей, прошедших проверку подлинности, с помощью файлов cookie, это невозможно, потому что файлы cookie разделяются между вкладками браузера. То же самое и с большинством сайтов. Возьмем, например, Gmail: вы входите в систему с одной учетной записью, затем открываете новую вкладку, и вы автоматически регистрируетесь с тем же пользователем, потому что файлы cookie совместно используются.

Для того чтобы добиться того, что вы просите, вам в основном придется изменить способ отслеживания ваших аутентифицированных пользователей. Вы больше не должны использовать файлы cookie.

2 возможности приходят на ум:

  • Используйте скрытое поле на каждой странице, которая будет содержать идентификатор сессии
  • Append идентификатор сеанса в строке запроса всех запросов
6

там будет только один sessionID сохранен (в cookie) для домена браузером, который будет возвращен серверу после последующих обратных передач, чтобы идентифицировать сеанс.

, если вы открываете другую вкладку и регистрируетесь как другое лицо, то последние sessionID переопределяют предыдущие ..

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

0

Internet Explorer предлагает функцию «Новый сеанс» в меню «Файл». Это позволит второму пользователю зайти на ваш сайт, а другой уже зарегистрирован. Однако это запустит новое окно, и не возможно запустить отдельный сеанс на другой вкладке.

Другие браузеры могут предлагать аналогичную функцию.