似乎有很多方法,但没有默认。对于状态管理,ASP.NET默认使用cookie吗?ASP.NET网站默认使用Cookie吗?
如果是这样,有什么替代使用cookie?
如果不是,ASP.NET默认使用什么来管理状态?
似乎有很多方法,但没有默认。对于状态管理,ASP.NET默认使用cookie吗?ASP.NET网站默认使用Cookie吗?
如果是这样,有什么替代使用cookie?
如果不是,ASP.NET默认使用什么来管理状态?
是 - 默认情况下,ASP.NET使用cookie来维护会话。
也就是说,一个唯一的“会话标识符”cookie存储在客户端上,以跟踪服务器上的会话(状态服务,sql db等)。
但在web.config中,您可以设置Cookie的为true:
<sessionState mode="InProc" cookieless="true" timeout="20" />
这将导致同样的“会话标识符”被卡在URL中,并没有cookies将被使用。
不要混淆 - cookies不会存储实际的“会话”。这听起来像你认为cookie可以用来替代ASP.NET状态服务。
实际上,cookie只是存储一个标识符以便“跟踪”会话,换句话说,这个“标识符”是在每个HTTP请求的客户端服务器之间传递的,这样服务器就可以同步一个特定的会话项目与它所属的客户端。
基于Cookie的Cookie /无Cookie会话无法体现您使用的实际状态存储机制 - 无论是进程中会话,ASP.NET状态服务还是SQL Server。它只是规定了服务器被允许跟踪会话的方式。
当然,无Cookie会话将适合可能会关闭cookie的客户端,但缺点是您拥有丑陋的URL,但这可以通过使用URL重写相当容易 ,尽管我会建议不要这样做 - 许多人在尝试这样做时报告了问题。
HTH
我不认为你可以重写URL查询数据从一个URL的.... – 2010-09-18 00:21:09
@汤姆Gullen - 答案编辑。 =)你可以,但不容易,很多人都尝试失败了。 – RPM1984 2010-09-18 00:40:41