hel*_*rld 0 asp.net session session-state
请帮我看看我的理解是否正确。
ASP.NET 会话存储在 Web 服务器上,不使用任何 cookie。
ASP.NET 如果配置为使用 webconfig->session state 的 session:那么我们可以将其配置为 stateconnection 或 sqlconnection。
ASP.NET 如果配置为使用会话状态(作为 stateconnection 或作为 sqlconnection),那么当用户在代码中使用会话时,将使用客户端计算机上的 cookie,除非您在 webconfig 中指定 cookieless=true
如果我们使用<sessionState cookieless="true" />
then 默认情况下 stateconnection 设置为 localhost
在许多动态网站中谈论Session 时,您希望在 HTTP 请求之间存储用户数据(因为 http 是无状态的,否则您无法将请求关联到任何其他请求),但您不希望该数据可读 /可在客户端编辑,因为您不希望客户端在不通过您的(服务器端)代码的情况下使用该数据。
解决方案是存储该数据服务器端,给它一个“id”,并让客户端只知道(并在每个 http 请求时传回)该 id。好了,会话已实施。或者您可以将客户端用作方便的远程存储,但您将对数据进行加密并在服务器端保密。
当然还有其他方面需要考虑,比如您不希望人们劫持其他人的会话,您希望会话不会永远持续下去,而是会过期,等等。
会话状态包含与服务器的特定会话(由特定客户端/浏览器/机器)有关的信息。这是一种跟踪用户在网站上做什么的方法……跨越多个页面……在网络的无状态中。例如,特定用户购物车的内容是会话数据。Cookie 可用于会话状态。
Cookie是一小段文本,存储在客户端的计算机上,仅供设置 Cookie 的网站使用。这允许 Web 应用程序为用户保存信息,然后在需要时在每个页面上重新使用它。每个会话都会有 SessionID。Session ID 是一个唯一的数字,服务器分配给一个特定的用户,在他的访问(会话)期间。默认情况下,会话 ID 附加到 cookie,并且该 cookie 将在其请求/响应期间从客户端到服务器(以及服务器到客户端)共享。并且服务器将根据从 cookie 中检索到的会话 ID 来识别会话。
关于cookieless,如果您的浏览器不支持 cookie 或禁用,则将使用 cookieless。由于它是 Cookieless,因此 asp.net 无法创建 cookie 来保存会话 ID。相反,会话 ID 将在查询字符串中传递。