Сессия потеряна для обратного URL GetResponse () - PullRequest
1 голос
/ 01 февраля 2012

Я делаю веб-запрос с Page1 на Page2.Page2 обрабатывает информацию и отправляет URL-ссылку (http://xyz/abc/Page3.aspx) в ответ на Page1.

Page2 и Page3 принадлежат одному решению и совместно используют переменные сеанса.

В Page1 после получения ответаОн выбирает URL-адрес, отправленный страницей 2, и пытается перейти на него. Но, к сожалению, сеанс потерян на странице 3. Я ожидал, что переменные сеанса, хранящиеся на странице 2, будут доступны на странице 3.

На странице 1: запрос WebRequest = WebRequest.Create ("page2");
...
request.GetResponse ();
...
String urlStr = getURL ();
// Этот URL имеет ссылку на Page3
Response.Redirect (urlStr);

На странице 2: Session ["guid"] = "stackoverflow";
...
Context.Response.Write (xmlString);
Context.Response.End ();

In Page3: // Здесь я теряю значение сеанса
String temp = Convert.ToString (Session ["guid"]);

ОБНОВЛЕНИЕ: Решение
На странице 1: request.CookieContainer = new CookieContainer ();
..
System.Net.WebResponse response = request.GetResponse ();
CookieCollection respCookieCollection = ((HttpWebResponse) response) .Cookies;

...
// Создать новый запрос для перехода на страницу Page 3 с файлами cookie, полученными из предыдущего ответа.HttpWebRequest request2 = (HttpWebRequest) HttpWebRequest.Create (url);request2.Method = WebRequestMethods.Http.Post;request2.CookieContainer = new CookieContainer ();request2.CookieContainer.Add (respCookieCollection);
.... System.Net.WebResponse response2 = request2.GetResponse ();System.IO.StreamReader reader2 = new System.IO.StreamReader (response2.GetResponseStream ());строка str2 = reader2.ReadToEnd ();Response.Write (str2); * +1043 *

...