asp.net - session是保存在客户端还是服务器端

标签 asp.net asp.net-mvc-3

我想知道HttpContext.Session是否使用cookie来存储数据。一位同事告诉我,在移动网站中,手机通常没有 cookie,因此您没有 session 。我一直认为 session 是存储在服务器端的数据,不依赖于客户端对象,如果我错了请解释。

我读到this .

最佳答案

在 ASP.NET 中;你有一个 session cookie。此 cookie 用于识别哪个 session 是您的;但实际上并不包含 session 信息。

默认情况下,ASP.NET 会将 session 信息存储在工作进程 (InProc) 内部的内存中,通常是 w3wp.exe。还有其他存储 session 的模式,例如 Out of Proc 和 SQL Server。

ASP.NET 默认使用 cookie;但如果您确实需要,可以配置为“无cookie”;它会将您的 session ID 存储在 URL 本身中。这通常有几个缺点;例如链接的维护变得困难,人们用过期的 session ID 为 URL 添加书签(因此您需要处理过期的 session ID 等)。大多数现代手机,甚至非智能手机,都支持 cookie。较旧的手机可能不会。是否需要支持 cookieless session 取决于您。

如果您的网址如下所示:

http://www.example.com/page.aspx

无 cookie 的 URL 如下所示:

http://www.example.com/(S(lit3py55t21z5v55vlm25s55))/page.aspx

其中 lit3py55t21z5v55vlm25s55 是 session ID。

您可以了解有关 ASP.NET session 状态的更多信息 here

关于asp.net - session是保存在客户端还是服务器端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6665619/

相关文章:

asp.net-mvc-3 - MVC 3 架构?

javascript - 将 10 MB 的数据发送到客户端网格的最佳方式是什么?

jquery - MVC3 使用 JQuery Ajax 将 ViewModel 传递给 Controller ​​方法

c# - Ninject 3 InRequestScope 不为同一请求返回同一实例

javascript - 仅在浏览器/选项卡关闭时为用户显示一次自定义弹出窗口或当用户将鼠标悬停在浏览器栏或关闭按钮上时显示弹出窗口

asp.net - Page.User.Identity.IsAuthenticated 返回未设置到对象实例的对象引用

.NET 文本框背景色问题

c# - 为什么文本框中的自动完成 jquery 在内容占位符中使用时不起作用?

c# - 具有相同文本输入的 ASP.NET 文本框文本更改

jquery - Facebook 评论插件