[英]how to maintain the session in the same page
在我的页面加载中,我得到了会话[“名称”]
当我使用此代码保存时:
Stream stream = null;
request = (HttpWebRequest)WebRequest.Create(url);
response = (HttpWebResponse)request.GetResponse();
当涉及到这一行:
response = (HttpWebResponse)request.GetResponse();
它再次移至页面加载,而该会话为null。 怎么样??? 如何在同一页面中维护会话。 为什么在遇到这条线时清除它...
会话无法与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.
您正在尝试通过应用程序发出Web请求,而这不是您的会话,而是您的应用程序会话。
数据(名称键及其值)存储在会话中,但是当您调用WebRequest.GetResponse()
方法时,您的应用程序将启动它自己的全新会话。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.