【发布时间】:2015-01-30 10:22:01
【问题描述】:
我对 MVC4 中的会话管理有点困惑。
可以说,我输入了用户名和密码,然后单击了登录按钮。 然后在服务器端,我从 HttpContext.Current.Session 获得了 SessionId。然后我根据数据库验证该用户凭据。如果用户有效,则在 Session 中添加 SessionId、userName 和 uiserId。
比方说,下次请求来自同一台机器和同一浏览器时,我得到了相同的 SessionId,然后允许该用户访问其他信息。
现在我有以下问题:
- 服务器如何知道请求来自同一浏览器和同一台机器?
- 我发现,不同浏览器的 SessionId 不同,但不同机器上的相同浏览器相同,所以如果我从 machine1 和谷歌浏览器登录,那么是否可以为不同的浏览器使用相同的会话?(意味着会话将可用于具有相同浏览器的不同机器。可能吗?)
- 服务器如何理解该请求是针对同一用户的,谁已登录?
- 在asp.net中会话由viewState维护,而MVC中没有使用view state,那么MVC中使用的是什么?
【问题讨论】:
-
我会在找到更多时间时尝试回答您的具体问题,但我认为此 URL 将帮助您消除一些疑问。 gregorybeamer.wordpress.com/2012/11/04/…
-
好的,谢谢我会通过这个网址
-
Session 永远不会由 ViewState“维护”,它们是完全独立的机制。 ViewState 存储在页面中的隐藏字段中,会话数据永远不会发送到浏览器。
标签: asp.net asp.net-mvc asp.net-mvc-4 session session-state