【发布时间】:2011-11-10 01:39:35
【问题描述】:
请任何人建议我会话在 asp.net 中的实际工作方式? 我在部分课程中感到困惑,想简要了解一下,所以请指导我
【问题讨论】:
-
尝试阅读这篇 CodeProject 文章codeproject.com/Articles/32545/Exploring-Session-in-ASP-Net
标签: session asp.net-3.5
请任何人建议我会话在 asp.net 中的实际工作方式? 我在部分课程中感到困惑,想简要了解一下,所以请指导我
【问题讨论】:
标签: session asp.net-3.5
ASP.NET 使用 cookie 来跟踪用户。当您第一次尝试向会话写入内容时,会将 cookie 发送到客户端,例如 ASP.NET_SessionId。此 cookie 由客户端在后续请求中发送。由于这个cookie,服务器能够识别客户端并写入/读取相关的会话数据。请务必注意,此 cookie 不是持久性的(不会在浏览器重新启动后继续存在),并且会与 HttpOnly 标志一起发出,这意味着客户端脚本无法访问它。
除了 cookie,您还可以将 ASP.NET 配置为使用隐藏字段或将会话 ID 附加到每个请求的查询字符串中。
所以会话背后的基本思想是实际数据存储在服务器的某个位置,客户端在每个请求中发送一些 ID,以便服务器可以知道在哪里可以找到它的数据。
默认情况下,实际会话数据可以存储在 3 个位置:
这是 MSDN 上的一篇很好的文章,它探讨了 ASP.NET Session State。
【讨论】:
AboutUs 页面,它只返回一个 View ,这是否会为用户的请求创建一个新会话还是 Session 是使用我们应用程序中的代码创建的,例如表单身份验证?
会话:[存储在服务器端]
1.如果您创建会话,则服务器存储您的会话数据并创建一个 SessionID 。 [Session ID 存储在 Server 的 State Provider 中的会话数据]
2.然后服务器将SessionID返回给客户端的浏览器。
3.然后你可以将返回的SessionID存储在Cookie中。
4. 带有 SessionID 的后续请求可以访问服务器数据。
注意:会话仅适用于当前浏览器会话和特定用户。
【讨论】: