我想知道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/