繁体   English   中英

如何在同一页面中维护会话

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM