Как IIS распознает разные сеансы в .NET?

Предположим, я вошел в приложение, которое выполняется из IIS . Сейчас я не вышел из системы, но закрыл браузер. И когда я снова получаю доступ к приложению, по умолчанию оно отображается на странице входа. Как IIS распознает, что это новый запрос, и перенаправляет пользователя на страницу входа?

У меня есть еще один вопрос. Предположим, если я не закрываю браузер, который я использовал при входе в систему. m открыть новый браузер, чтобы запросить страницу из того же приложения. IIS распознает, что это новый запрос к приложению, и перенаправляет пользователя на страницу входа. Почему он не использует существующий сеанс или файлы cookie, которые использует первый браузер?

Пожалуйста, не раздражайтесь от моих постоянных вопросов ... У меня огромное замешательство. Мы говорим HTTP - это протокол без сохранения состояния. Как только страница запрашивается, я вошел в систему. И соединение протокола HTTP будет разорвано между IIS и браузером, верно? Затем я перехожу на другие страницы в этом приложении. Теперь IIS распознает, что пользователь вошел в этот браузер. Но когда я открываю новый браузер и запрашиваю это приложение, как IIS распознает, что это новый запрос? Так как протокол HTTP отключен, как он работает в первом случае?

9
задан Peter Mortensen 27 April 2013 в 15:14
поделиться

3 ответа

Как вы правильно заметили, HTTP сам по себе не имеет статичности, и каждый запрос технически отделен от каждого другого. Сессии, используемые веб-сайтами, являются обходным путем для этого. Обычно происходит так: сервер хранит любую информацию, которую он хочет сохранить между запросами (например, имя пользователя и/или ID вошедшего в систему пользователя), и присваивает этой информации идентификатор (называемый "ID сессии"). Затем он сообщает браузеру этот идентификатор сессии таким образом, чтобы браузер мог передать его обратно, когда придет время сделать очередной запрос. Если браузер играет свою роль и предоставляет идентификатор сессии, то сохраненная информация может быть извлечена, обновлена и т.д. при каждом запросе, обеспечивая некоторую степень состояния даже в протоколе без статических данных.

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

Сеансовые куки обычно разделяются между вкладками одного и того же браузера, а иногда даже разделяются между окнами, открытыми командой "Файл > Новое окно" из уже запущенного браузера, потому что в обоих случаях они обычно являются частью этого браузера. Но если вы запускаете браузер из меню "Пуск" или каким-либо другим способом, который позволяет ваша ОС запускать программы, то это уже совсем другой процесс - а сессионные куки редко делятся между процессами.

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

38
ответ дан 4 December 2019 в 06:19
поделиться

Есть куки, которые передаются всегда, независимо от того, вошли вы в систему или нет. Они сопоставлены с сессией в IIS.

1
ответ дан 4 December 2019 в 06:19
поделиться

Ознакомьтесь со следующими статьями. Они могут быть полезны.

1
ответ дан 4 December 2019 в 06:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: