Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.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
Asp.net cookies和会话状态对象_Asp.net_Iis_Session_Cookies_Session State - Fatal编程技术网

Asp.net cookies和会话状态对象

Asp.net cookies和会话状态对象,asp.net,iis,session,cookies,session-state,Asp.net,Iis,Session,Cookies,Session State,无论如何,我主要关心的是使用会话。我一直认为,如果你使用以下语句(我不会): 您将创建3个包含特定值的新会话cookie。但我认为我的asp书表明,您实际上会在会话状态对象中创建3个新变量,asp只会在响应中传递一个唯一的会话ID(作为cookie?),并在下一个请求时获取该ID,并将该ID与会话状态对象(IIS已存储在内存中..?)关联: …它创建一个会话状态对象 包含的唯一会话ID 每个用户的会话。此ID已通过 返回浏览器,作为 然后返回到 接收下一个请求的服务器。ASP.NET 然后可以使

无论如何,我主要关心的是使用会话。我一直认为,如果你使用以下语句(我不会):

您将创建3个包含特定值的新会话cookie。但我认为我的asp书表明,您实际上会在会话状态对象中创建3个新变量,asp只会在响应中传递一个唯一的会话ID(作为cookie?),并在下一个请求时获取该ID,并将该ID与会话状态对象(IIS已存储在内存中..?)关联:

…它创建一个会话状态对象 包含的唯一会话ID 每个用户的会话。此ID已通过 返回浏览器,作为 然后返回到 接收下一个请求的服务器。ASP.NET 然后可以使用会话ID获取 关联的会话状态对象 我同意你的请求

对于一个流量很大的网站来说,这似乎并不理想。每个网站存储和维护成千上万个会话状态实例的服务器似乎过载太多了。
我想自己看看发生了什么事,但我遇到了麻烦。。我在我的计算机(IE/windows xp)上的任何地方都找不到我网站的cookie。我已经检查了
C:\Documents and Settings\nicholasr\Cookies\
C:\Documents and Settings\nicholasr\Local Settings\Temporary Internet Files
,根据IE,Cookies也会被存储。我正在我的应用程序中使用票证身份验证,该应用程序在客户端上存储身份验证cookie,因此我的站点中的cookie必须在某个地方。
我想我是在问:
1) 如果有人能帮助我了解会话状态在幕后是如何工作的

2) IE在哪里存储我网站的cookies?> 有一个表示GUID的会话cookie。会话值本身存储在服务器上。所以当你写作时:

Session["newVar1"] = "a new session variable";
Session["newVar2"] = "a new session variable";
Session["newVar3"] = aLargeVariableThatHoldsLotsOfData;
一个看起来像这样的HTTP cookie被发送到客户端。此cookie仅包含id,而不包含实际值。实际值可以存储在服务器内存、单独的进程甚至SQL server中,具体取决于web.config中的。然后,当客户端稍后发送另一个请求时,它会将此cookie id发送到服务器,并且给定id,服务器将获取实际值


客户端浏览器将这些cookie存储在内存中,这意味着如果关闭它,会话将丢失,因为会话cookie不是持久的。

存在一个表示GUID的会话cookie。会话值本身存储在服务器上。所以当你写作时:

Session["newVar1"] = "a new session variable";
Session["newVar2"] = "a new session variable";
Session["newVar3"] = aLargeVariableThatHoldsLotsOfData;
一个看起来像这样的HTTP cookie被发送到客户端。此cookie仅包含id,而不包含实际值。实际值可以存储在服务器内存、单独的进程甚至SQL server中,具体取决于web.config中的。然后,当客户端稍后发送另一个请求时,它会将此cookie id发送到服务器,并且给定id,服务器将获取实际值


客户端浏览器将这些cookie存储在内存中,这意味着如果关闭它,会话将丢失,因为会话cookie不是持久性的。

Thx Darin。你知道我在哪里能找到这块饼干吗?视窗xp/IE7@Nicklamort,你找不到它。它位于浏览器的内存中,并随每个请求一起发送。从不存放在任何地方。您可以在FireFox中使用HTTP分析器(如Fiddler或FireBug)来查看此值是如何附加到每个请求的。@Darin Oh snap。。我想我的auth cookie也一样。非常感谢你!很大的帮助:)@Nicklamort,认证cookies是不同的。您可以使它们持久化,即存储在文件中,以便在重新启动浏览器后仍然存在。使用发出cookie时,第二个参数允许您指定此行为。@Darin我明白了。我的auth cookie是非经验性的,所以这可以解释它。这个答案对我也很有用:Thx Darin。你知道我在哪里能找到这块饼干吗?视窗xp/IE7@Nicklamort,你找不到它。它位于浏览器的内存中,并随每个请求一起发送。从不存放在任何地方。您可以在FireFox中使用HTTP分析器(如Fiddler或FireBug)来查看此值是如何附加到每个请求的。@Darin Oh snap。。我想我的auth cookie也一样。非常感谢你!很大的帮助:)@Nicklamort,认证cookies是不同的。您可以使它们持久化,即存储在文件中,以便在重新启动浏览器后仍然存在。使用发出cookie时,第二个参数允许您指定此行为。@Darin我明白了。我的auth cookie是非经验性的,所以这可以解释它。这个答案对我也很有用: