在我的页面加载中,我有会话[“名称”]
当我使用此代码保存时:
Stream stream = null;
request = (HttpWebRequest)WebRequest.Create(url);
response = (HttpWebResponse)request.GetResponse();
说到这一行:
response = (HttpWebResponse)request.GetResponse();
它再次转到页面加载,那时会话为空。怎么样???如何在同一页面中维护会话。为什么当这条线遇到时它被清除......
答案 0 :(得分:1)
会话不会与HttpWebResponse持续存在的原因是因为默认情况下HttpWebResponse
不会为您处理cookie。 ASP.NET使用cookie来标识哪个会话属于用户。
值得庆幸的是,有一个名为CookieContainer
的辅助类可以帮助您解决这个问题。创建一个CookieContainer
并将其附加到您的Web请求 - 在后续请求中,您需要将cookie容器或其中的cookie再次附加到请求以保持会话:
CookieContainer cookieJar = new CookieContainer();
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://www.google.com");
request.CookieContainer = cookieJar;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
// on a second request, you can use the cookieJar container to pass the session cookie.
答案 1 :(得分:0)
您正在尝试从您的应用程序发出Web请求,而不是您的会话,而是您的应用程序会话。
数据(名称键及其值)存储在您的会话中,但是当您调用WebRequest.GetResponse()
方法时,您的应用程序将启动它自己的全新会话。