Response.Redirect използва ли същата сесия или започва нова?

Бих искал да мога да използвам същата променлива на сесията при прехвърляне към друго приложение.

Response.Redirect използва ли същата сесия или започва нова?

Използвам c#, aspnet 3.5


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


Отговори (4)


Response.Redirect не прави нищо със сесията. Сесията е свързана (обикновено) с бисквитка, свързана с URI на уеб приложението. Ако превключите към друго уеб приложение на друг сървър или отделен URI адрес, сесията няма да се пренесе дори ако сте успели да запазите бисквитката.

Можете ли да изясните какъв проблем се опитвате да разрешите?

person spoulson    schedule 02.07.2009
comment
Опитвам се да осъществя достъп до стойност, зададена в app1 в app2, без да я предам видимо в url като параметър. - person Lill Lansey; 02.07.2009
comment
Не мисля, че това ще проработи. Все пак можете да го ПУБЛИКУВАТЕ. - person AndyMcKenna; 02.07.2009
comment
@Lill Lansey-Ако случаят е такъв, може да искате да преформулирате въпроса си. - 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

Ако се опитвате да получите достъп до променливи на сесията от друго приложение, това няма да работи, доколкото си спомням. Променливите на сесията са валидни само в рамките на едно приложение.

Ако се опитвате просто да пренасочите към друга папка в рамките на същото приложение, променливите на сесията са налични.

Ако двете приложения наистина са отделни, можете да разгледате съхраняването на обектите на сесията в база данни и предаването на sessionID към новото приложение, като използвате или POST, или url параметър, но нито едно от тях не е много сигурно и оставя приложението отворено за хакване без да са положени необходимите грижи за гарантиране на идентичността на потребителите.

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