asp.net - 如果在客户端机器上禁用 cookie, session 存储在哪里? session 中实际存储了什么?

标签 asp.net session cookies

在配置文件中,我有以下设置

sessionState 模式="InProc"cookieless="false"

这是否表明 sessionid 是在 cookie 中存储的?如果是,那么它是如何被挑选并发送到服务器的,以及它是如何在回发中验证的。

如果在我的浏览器中禁用 cookie 会发生什么, session ( session ID 和 session 变量)是否仍会创建?

默认情况下为 session 创建和存储的 cookie 在哪里(默认路径),我可以更改路径吗?

session 的 cookie 中存储了哪些格式和类型的数据?

如果我在 session 中存储一个类对象,那么实际存储在 cookie 中的是什么?

此外,如果我将身份验证模式用作带有 cookie 的表单,那么如果在浏览器中禁用 cookie 会发生什么?

最佳答案

session cookie 是一种特殊的非持久性 cookie。它只存储在内存中,因此在大多数情况下,即使禁用了 cookie,它仍然可以正常工作。

也可以启用一种称为 cookieless session 的东西,其中 sessionID 嵌入在 URL 中,如下所示:

http://yourserver/folder/ (此处为加密 session ID)/default.aspx

这是 MSDN 文章的链接,其中包含更多详细信息:http://msdn.microsoft.com/en-us/library/aa479314.aspx

注意:可以完全阻止 session cookie。例如,在 IE8 中,我只是进入工具 > Internet 选项 > 隐私。当我将 slider 调到“高”或更高时,我的网站从未通过登录屏幕,因为 session cookie 被阻止 - 事实上,乔什·斯托多拉在下面说,在这种情况下,甚至永远不会在服务器上创建 session 。

但是,请了解此类行为有效地破坏了 Internet。因此,除非您正在建立一个针对阴谋论者的网站,否则在我看来(以及世界上大多数最大网站的观点),没有必要迎合极少数不按正常规则玩的用户.

对他们来说,互联网并没有按照应有的方式运作。

关于asp.net - 如果在客户端机器上禁用 cookie, session 存储在哪里? session 中实际存储了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1401325/

相关文章:

asp.net - 在什么情况下 ctl00 前缀会呈现为其他内容,例如。 ctl01?

ruby-on-rails - session cookie 不只在生产中创建

internet-explorer - 从 Internet Explorer 11 F12 Dev Tools 中删除单个 cookie

python - 如何将请求(python)cookie保存到文件中?

c# - system.stackoverflowexception 无法计算表达式,因为当前线程处于堆栈溢出状态

c# - 在 azure 上移动 asp.net Web 表单网站,无需再次编码即可使用 azure blob 存储

c# - 从 Controller 访问它时,我的 MvcApplication 的属性为 null

java - Tomcat 7 创建多个 session

node.js - connect-mongo MongoStore session 实际上是如何保存的?

cookies - Google Adsense 上是否有设置禁止尚未同意的用户使用 cookie