Использует ли Response.Redirect тот же сеанс или запускает новый?

Я хотел бы иметь возможность использовать ту же переменную сеанса при передаче в другое приложение.

Использует ли Response.Redirect тот же сеанс или запускает новый?

Я использую С#, aspnet 3.5.


person Lill Lansey    schedule 02.07.2009    source источник


Ответы (4)


Response.Redirect ничего не делает с сеансом. Сеанс привязан (обычно) к файлу cookie, связанному с URI веб-приложения. Если вы переключитесь на другое веб-приложение на другом сервере или на отдельный URI, сеанс не будет перенесен, даже если вам удалось сохранить файл cookie.

Можете ли вы уточнить, какую проблему вы пытаетесь решить?

person spoulson    schedule 02.07.2009
comment
Я пытаюсь получить доступ к значению, установленному в app1 в app2, не передавая его явно в URL-адресе в качестве параметра. - person Lill Lansey; 02.07.2009
comment
Я не думаю, что это сработает. Вы могли бы опубликовать это, хотя. - person AndyMcKenna; 02.07.2009
comment
@ Лилл Лэнси. Если это так, вы можете перефразировать свой вопрос. - person John MacIntyre; 02.07.2009

Response.Redirect отправляет Http-ответ в браузер с кодом состояния 302 Found и заголовком Location: {redirection-url}.

Браузер получает этот ответ и знает, что нужно отправить новый запрос к {redirection-url}, когда он получает ответ с кодом состояния 302 Found.

Это все, что происходит.

Response.Redirect не запускается, не останавливается и не имеет никакого отношения ни к каким сеансам.

person yfeldblum    schedule 02.07.2009

Он использует тот же сеанс.

РЕДАКТИРОВАТЬ: предполагается, что новый URL-адрес в любом случае будет использовать тот же сеанс.

person AndyMcKenna    schedule 02.07.2009

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

Если вы пытаетесь просто перенаправить в другую папку в том же приложении, тогда доступны переменные сеанса.

Если два приложения действительно разделены, вы можете посмотреть на сохранение объектов сеанса в базе данных и передачу идентификатора сеанса новому приложению с использованием параметра POST или URL-адреса, однако ни один из них не является очень безопасным и оставляет приложение открытым для взлома без надлежащего ухода для обеспечения идентификации пользователей.

person Mauro    schedule 02.07.2009
comment
Долгосрочный план состоит в том, чтобы безопасно передавать информацию между приложениями с помощью рукопожатия, включающего как сохранение информации в базе данных, так и передачу параметра URL-адреса, но сейчас я просто искал способ быстро протестировать некоторый код. - person Lill Lansey; 02.07.2009