会话因GetResponse()的返回URL而丢失

时间:2012-01-31 21:30:47

标签: httpwebrequest webrequest httpwebresponse response.write session-state

我正在从Page1到Page2进行WebRequest。 Page2处理信息并发送URL链接(http://xyz/abc/Page3.aspx)以响应Page1。

Page2和Page3属于同一解决方案并共享会话变量。

在Page1中,一旦收到回复。它选择page2发送的URL并尝试去。但遗憾的是会话在Page3中丢失了。我期待第2页中存储的会话变量可以在Page3。

中访问

在第1页: WebRequest request = WebRequest.Create(“page2”);
...
request.GetResponse();
...
String urlStr = getURL();
//此网址包含指向第3页的链接 的Response.Redirect(urlStr);

在第2页: 会话[ “GUID”] = “计算器”;
...
Context.Response.Write(的xmlString);
            Context.Response.End();

在第3页: //这是我失去了会话值
String temp = Convert.ToString(Session [“guid”]);

更新:解决方案
在第1页: request.CookieContainer = new CookieContainer();
..
    System.Net.WebResponse response = request.GetResponse();
    CookieCollection respCookieCollection =((HttpWebResponse)response).Cookies;

...
//使用从之前的响应中获取的Cookie创建新的导航到Page3的请求。     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());     string str2 = reader2.ReadToEnd();     回复于(STR2);

0 个答案:

没有答案