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