Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在同一页面中维护会话_C#_Session_Save_Pageload - Fatal编程技术网

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

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,此时会话为空。怎样???如何在同

在我的页面加载中,我得到了会话[“name”]

当我使用此代码保存时:

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会话。