Я использую сеансы для моей страницы входа, которая будет содержать userId в сеансе. Если два разных пользователя регистрируются с использованием одной и той же системы и одного браузера, но с отдельными вкладками браузера, значение sessionID пользователя возвращается к пользователю, который в последний раз заходил в систему. Зачем?Управление сеансом
ответ
Невозможно, так как сеансы разделяются между вкладками. Им нужно использовать разные браузеры, либо последний сеанс пользователя удалит предыдущий сеанс пользователя.
Сессии не используются между вкладками , Куки-файлы разделяются между вкладками (очевидно, если эти вкладки указывают на один и тот же домен). Поэтому, если вы отслеживаете пользовательские сеансы с помощью куки-файлов, в результате совместного использования этих файлов, сеансы также будут доступны. Но если вы измените способ отслеживания пользователей, прошедших проверку подлинности, и не используете файлы cookie, сеансы не будут использоваться между вкладками. –
Правда, когда я сказал, что сессии я принимал, что файлы cookie используются. Настройка опции cookieless для использования url в web.config работает. Но это небезопасно, поэтому я так и не подумал об этом. – H27studio
Если вы отслеживаете пользователей, прошедших проверку подлинности, с помощью файлов cookie, это невозможно, потому что файлы cookie разделяются между вкладками браузера. То же самое и с большинством сайтов. Возьмем, например, Gmail: вы входите в систему с одной учетной записью, затем открываете новую вкладку, и вы автоматически регистрируетесь с тем же пользователем, потому что файлы cookie совместно используются.
Для того чтобы добиться того, что вы просите, вам в основном придется изменить способ отслеживания ваших аутентифицированных пользователей. Вы больше не должны использовать файлы cookie.
2 возможности приходят на ум:
- Используйте скрытое поле на каждой странице, которая будет содержать идентификатор сессии
- Append идентификатор сеанса в строке запроса всех запросов
там будет только один sessionID
сохранен (в cookie) для домена браузером, который будет возвращен серверу после последующих обратных передач, чтобы идентифицировать сеанс.
, если вы открываете другую вкладку и регистрируетесь как другое лицо, то последние sessionID
переопределяют предыдущие ..
Таким образом, не возможно иметь разные логины в одном браузере .. но использовать другой браузер (не другой экземпляр одного и того же браузера)
Internet Explorer предлагает функцию «Новый сеанс» в меню «Файл». Это позволит второму пользователю зайти на ваш сайт, а другой уже зарегистрирован. Однако это запустит новое окно, и не возможно запустить отдельный сеанс на другой вкладке.
Другие браузеры могут предлагать аналогичную функцию.
Это либо asp.net, либо asp-classic, не оба. Исправьте теги. –
Хорошая статья о безопасном управлении сеансом, которую вы найдете весьма полезной: http://www.linuxforu.com/2011/02/securing-apache-part-6-attacks-session-management/ – Sam