2015-05-12 129 views
0

请帮助我,我的理解是否正确。ASP.NET会话vs会话状态和cookie vs cookie较少

  1. ASP.NET会话存储在Web服务器上,并且没有任何cookie用于此目的。

  2. ASP.NET如果配置为使用会话与webconfig->会话状态:那么我们可以配置它为stateconnection或sqlconnection。

  3. ASP.NET如果配置为使用会话状态(或者作为stateconnection或作为SqlConnection的),那么,当用户使用会话在代码然后客户端计算机上的cookie中使用,除非在该webconfig无cookie =真

  4. 指定

    如果我们使用<sessionState cookieless="true" />则默认stateconnection设置为localhost

回答

3

当你想存储HTTP请求之间的用户数据(很多动态网站谈论会议因为HTTP是无状态的一个nd不能将请求与任何其他请求关联),但是您不希望该数据在客户端可读/可编辑,因为您不希望客户端在不通过您的(服务器端)代码。

解决方案是存储数据服务器端,给它一个“id”,并让客户端只知道(并在每个http请求传回)该id。你去,会议实施。或者,您可以将客户端用作便捷的远程存储,但您会加密数据并保留秘密服务器端。

当然还有其他方面需要考虑,比如你不希望人们劫持其他人的会话,你希望会话不会永远持续下去,而是会过期,等等。

会话状态包含与服务器有关的特定会话(通过特定客户端/浏览器/机器)的信息。这是一种跟踪用户在网站上做什么的方式......跨越多个网页......处于Web的无状态。例如特定用户购物车的内容是会话数据。 Cookie可以用于会话状态。

Cookies是一小段文字,存储在客户端计算机上,仅供设置Cookie的网站使用。这允许web应用程序为用户保存信息,并在需要时在每个页面上重新使用它。 每个会话都有SessionID。会话ID是一个唯一的号码,服务器在访问期间(会话)分配给特定的用户。并且默认情况下,会话ID被附加到cookie中,并且在请求/响应期间,该cookie将被从客户端共享到服务器(以及服务器到客户端)。并且服务器将根据从cookie检索的会话标识来识别会话。

而对于无Cookie的,如果您的浏览器不支持cookie或禁用,则将使用无cookie。由于它是Cookieless,所以asp.net无法创建cookie来保存会话ID。相反,会话ID将通过查询字符串传递。

+0

如果按照我的问题给出点状答案,将会很有帮助 – helloworld