我正在从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);