请帮助我,不管我的理解是否正确。
ASP.NET会话存储在Web服务器上,并且没有使用任何cookie。
ASP.NET如果配置为使用会话与webconfig->会话状态:那么我们可以将其配置为stateconnection或sqlconnection。
ASP.NET如果配置为使用会话状态(作为stateconnection或sqlconnection),那么当用户在代码中使用会话时,将使用客户端计算机上的cookie,除非您在webconfig中指定cookieless = true
如果我们使用<sessionState cookieless="true" />
,则默认情况下stateconnection设置为localhost
答案 0 :(得分:4)
在许多动态网站中讨论会话时,您希望在HTTP请求之间存储用户数据(因为http是无状态的,否则您无法将请求与任何其他请求相关联),但是您不希望客户端的数据可读/可编辑,因为您不希望客户端使用该数据而不通过您的(服务器端)代码。
解决方案是存储该数据服务器端,给它一个&#34; id&#34;,并让客户端只知道(并在每个http请求时传回)该id。你去,会议实施。或者您可以将客户端用作方便的远程存储,但您可以加密数据并保留服务器端的秘密。
当然还有其他方面需要考虑,比如你不希望别人劫持其他会话,你希望会话不会永远持续但会过期,等等。
会话状态包含与服务器的特定会话(由特定客户端/浏览器/计算机)相关的信息。这是一种跟踪用户在网站上做什么的方式..跨越多个页面......在无状态的网络中。例如特定用户的购物车的内容是会话数据。 Cookie可用于会话状态。
Cookie 是一小段文字,存储在客户端的计算机上,只能由设置Cookie的网站使用。这允许Web应用程序为用户保存信息,然后在需要时在每个页面上重复使用它。 每个会话都有SessionID。会话ID是一个唯一的号码,服务器在访问(会话)期间分配给特定用户。并且默认情况下,会话ID附加到cookie,并且该cookie将在其请求/响应期间从客户端到服务器(以及服务器到客户端)共享。服务器将根据从cookie检索的会话ID识别会话。
关于 cookieless ,如果您的浏览器不支持cookie或禁用,则将使用cookieless。由于它是Cookieless,因此asp.net无法创建cookie来保存会话ID。相反,会话ID将在查询字符串中传递。
答案 1 :(得分:1)
会话:存储在服务器(内存或数据库)上,Web 应用程序中的所有页面都可以使用其中的数据。
会话状态:当用户在 Web 应用程序中导航页面时存储和检索用户的值。
Cookies:作为包含非敏感数据的文件存储在客户端,但包含用户收藏夹和首选项等数据。
Cookieless :在 URL 查询字符串中传递会话 ID,而不将其存储在 cookie 中,以防您希望用户阻止或删除 cookie。