Я хотел бы иметь возможность использовать ту же переменную сеанса при передаче в другое приложение.
Использует ли Response.Redirect тот же сеанс или запускает новый?
Я использую С#, aspnet 3.5.
Я хотел бы иметь возможность использовать ту же переменную сеанса при передаче в другое приложение.
Использует ли Response.Redirect тот же сеанс или запускает новый?
Я использую С#, aspnet 3.5.
Response.Redirect
ничего не делает с сеансом. Сеанс привязан (обычно) к файлу cookie, связанному с URI веб-приложения. Если вы переключитесь на другое веб-приложение на другом сервере или на отдельный URI, сеанс не будет перенесен, даже если вам удалось сохранить файл cookie.
Можете ли вы уточнить, какую проблему вы пытаетесь решить?
Response.Redirect
отправляет Http-ответ в браузер с кодом состояния 302 Found
и заголовком Location: {redirection-url}
.
Браузер получает этот ответ и знает, что нужно отправить новый запрос к {redirection-url}
, когда он получает ответ с кодом состояния 302 Found
.
Это все, что происходит.
Response.Redirect
не запускается, не останавливается и не имеет никакого отношения ни к каким сеансам.
Он использует тот же сеанс.
РЕДАКТИРОВАТЬ: предполагается, что новый URL-адрес в любом случае будет использовать тот же сеанс.
Если вы пытаетесь получить доступ к переменным сеанса из другого приложения, то, насколько я помню, это не сработает. Переменные сеанса действительны только в пределах одного приложения.
Если вы пытаетесь просто перенаправить в другую папку в том же приложении, тогда доступны переменные сеанса.
Если два приложения действительно разделены, вы можете посмотреть на сохранение объектов сеанса в базе данных и передачу идентификатора сеанса новому приложению с использованием параметра POST или URL-адреса, однако ни один из них не является очень безопасным и оставляет приложение открытым для взлома без надлежащего ухода для обеспечения идентификации пользователей.