C# 如何在同一页面中维护会话
在我的页面加载中,我得到了会话[“name”] 当我使用此代码保存时:C# 如何在同一页面中维护会话,c#,session,save,pageload,C#,Session,Save,Pageload,在我的页面加载中,我得到了会话[“name”] 当我使用此代码保存时: Stream stream = null; request = (HttpWebRequest)WebRequest.Create(url); response = (HttpWebResponse)request.GetResponse(); 说到这一行: response = (HttpWebResponse)request.GetResponse(); 它再次移动到pageload,此时会话为空。怎样???如何在同
Stream stream = null;
request = (HttpWebRequest)WebRequest.Create(url);
response = (HttpWebResponse)request.GetResponse();
说到这一行:
response = (HttpWebResponse)request.GetResponse();
它再次移动到pageload,此时会话为空。怎样???如何在同一页面中维护会话。当此行遇到…您试图从应用程序发出Web请求时,为什么会被清除,而此时不是您的会话,而是您的应用程序会话
数据(名称键及其值)存储在会话中,但当您调用
WebRequest.GetResponse()
方法时,应用程序将启动它自己的全新会话。会话不使用HttpWebResponse持久化的原因是默认情况下,HttpWebResponse
不会为您处理cookies。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.
你想要实现什么?请格式化您的代码…如果您允许无cookieless会话(在web配置文件中为cookieless=“true”),那么您可以通过在URL中包含会话cookie来模拟无cookieless会话。默认情况下,我认为HttpWebRequest将表明它支持Cookie,这意味着ASP.NET不会尝试为您启动无Cookie会话。