会话如何在asp.net中运行?

coo*_*udy 28 session asp.net-3.5

请任何人建议我如何在asp.net中实际工作?我在会议的一部分中感到困惑,并希望简要介绍它,所以请指导我

Dar*_*rov 50

ASP.NET使用cookie来跟踪用户.当您第一次尝试向会话写入内容时,会向客户端发送cookie,例如ASP.NET_SessionId.此cookie由客户端在后续请求中发送.由于这个cookie,服务器能够识别客户端并写入/读取相关的会话数据.重要的是要注意,此cookie不是持久的(不会在浏览器重启后继续存在)并且使用HttpOnly标志发出,这意味着客户端脚本无法访问它.

除了cookie之外,您还可以将ASP.NET配置为使用隐藏字段,或者将会话ID附加到每个请求的查询字符串中.

因此,会话背后的基本思想是实际数据存储在服务器上的某个位置,客户端在每个请求上发送一些ID,以便服务器可以知道在哪里找到它的数据.

默认情况下,有3个地方可以存储实际的会话数据:

  • In-Proc:会话存储在应用程序的内存中(最快,但如果服务器场中有多个服务器则无法运行)
  • Out-of-Proc:数据存储在安装了State服务的单独服务器中(数据存储在单独的机器的内存中,这意味着多个Web服务器可以在Web场中工作)
  • SqlServer:数据存储在SQL Server中(它是最慢但最可靠的,因为会话数据存储在SQL Server数据库中,如果会话服务器崩溃而不是Out-Of-Proc的话,可以提供服务)
  • 自定义实现:由于ASP.NET的可扩展性,您可以编写自己的会话提供程序并将数据存储在任何您喜欢的位置.

这是一篇关于MSDN的好文章,它探讨了ASP.NET会话状态.