Asp.net 基本:如何创建会话id?

Asp.net 基本:如何创建会话id?,asp.net,session,Asp.net,Session,IIS是否在收到请求时创建会话id?该请求保存在何处(客户端或服务器) 服务器如何识别来自同一用户/会话的请求?第一个问题的答案是肯定的——如果使用了会话,并且两者都使用 cookie是客户端和服务器之间在每个请求/响应中来回传递的一小段文本 IIS生成会话id,保存它和任何相关数据,并将cookie中的数据传递给客户端(浏览器) 当客户端发出另一个请求时,它将包含会话ID的cookie发送回服务器。然后,服务器可以查看cookie并找到保存在服务器上的会话(以及相关数据)。在ASP.net中,

IIS是否在收到请求时创建会话id?该请求保存在何处(客户端或服务器)


服务器如何识别来自同一用户/会话的请求?

第一个问题的答案是肯定的——如果使用了会话,并且两者都使用

cookie是客户端和服务器之间在每个请求/响应中来回传递的一小段文本

IIS生成会话id,保存它和任何相关数据,并将cookie中的数据传递给客户端(浏览器)


当客户端发出另一个请求时,它将包含会话ID的cookie发送回服务器。然后,服务器可以查看cookie并找到保存在服务器上的会话(以及相关数据)。

在ASP.net中,有多个位置可以保存会话,但会话始终位于服务器基础结构中

默认值是IIS进程的内存。这意味着:如果重置IIS(或整个PC),甚至只是重置IIS中的应用程序池,所有会话都将被删除,会话数据将永远丢失。此外,如果您有很多会话,并且在每个会话中存储了大量数据,那么该过程将需要大量内存,这可能是一个问题。这称为“进程内”会话

主要的替代方案是SQL Server数据库。这样,即使在重新启动之后,会话也会保持不变,而且每个会话的大小实际上并不重要。主要的缺点是增加了延迟:从数据库获取数据当然比进程内解决方案慢


还有其他一些存储会话的方法(包括编写全新会话提供程序的选项),但两种常用的方法是“服务器内存”和“MS SQL数据库”。

web上是否有可以提供更多信息的链接?我想了解cookie是如何在客户端和服务器之间传输的。cookie是在HTTP请求的头中发送的。我有一个疑问,比如说,我刚刚在asp.net Mvc应用程序中创建了一个
AboutUs
页面,该页面只返回一个
视图
,这会为用户的请求创建一个新的会话,还是像表单验证一样使用我们应用程序中的代码创建会话?我有一个疑问,比如,我刚刚在asp.net Mvc应用程序中创建了一个
AboutUs
页面,该页面只返回一个
视图
,这将为用户的请求创建一个新会话,还是使用我们的应用程序中的代码(如表单身份验证)创建会话?