Причина, по которой сеансы не сохраняются с HttpWebResponse, заключается в том, что по умолчанию HttpWebResponse
не будет обрабатывать файлы cookie для вас. ASP.NET использует cookie для определения того, какой сеанс принадлежит пользователю.
К счастью, есть вспомогательный класс с именем CookieContainer
, который может помочь вам в этом. Создайте CookieContainer
и присоедините его к вашему веб-запросу - при последующих запросах вам потребуется снова прикрепить контейнер 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.