你的第一个问题的答案是肯定的——如果使用了会话,那么就是两者都需要。cookie是客户端和服务器之间在每个请求/响应中传递的短文本片段。IIS生成一个会话ID,将其保存并与任何相关数据一起通过cookie传递给客户端(浏览器)。当客户端发出另一个请求时,它会发送包含会话ID的cookie返回到服务器。服务器可以查看cookie并找到保存在服务器上的会话(以及相关数据)。
在ASP.net中,有多个地方可以保存会话(session),但它们始终在服务器基础设施内部。默认情况下,会话(session)保存在IIS进程的内存中。这意味着:如果您重置IIS(或整个PC),甚至仅在IIS中重置应用程序池,所有会话都将被删除,会话数据将永久丢失。此外,如果您有很多会话(session)并在每个会话(session)中存储了大量数据,则该过程将需要大量内存,这可能是一个问题。这称为“In-Proc Sessions”。主要的替代方法是使用SQL Server数据库。这样,即使重新启动,会话(session)也会被保留,并且每个会话(session)的大小并不重要。主要缺点是增加的延迟:从数据库获取数据比In-Proc解决方案慢当然。还有一些其他方法可以存储会话(session)(包括编写全新的会话提供程序的选项),但两种常见方法是“服务器内存”和“MS SQL数据库”。
AboutUs
的页面,该页面只返回一个View
,这是否会为用户请求创建新的会话,或者会话是使用我们应用程序中的代码(如表单身份验证)创建的? - Shaiju T