我对MVC4中的会话管理有点困惑。Session实际上是如何在MVC中工作的?
可以说,我输入了用户名和密码并单击登录按钮。 然后在服务器端,我从HttpContext.Current.Session获得SessionId。然后我正在验证该数据库的用户凭据。如果用户有效,则在Session中添加SessionId,userName和uiserId。
可以这样说,下次请求来自同一台机器和同一浏览器时,我得到了相同的SessionId,然后允许该用户访问其他信息。
现在我以下的问题:
- 如何服务器来知道请求是来自同一个浏览器,并从同一台机器来的?
- 我发现SessionId对于不同的浏览器是不同的,但是对于同一台浏览器在不同的机器上是一样的,所以如果我从machine1和google chrome登录,那么是否有可能为不同的浏览器使用相同的会话?会话将可用于具有相同浏览器的不同机器。是否有可能?)
- 服务器如何理解请求是针对登录的同一用户?
- 在asp.net会话由viewState维护,但视图状态不在MVC中使用,那么MVC中使用了什么?
我会尝试回答你的具体问题,当我找到更多的时间,但我认为这个网址将帮助你清除一些疑惑。 https://gregorybeamer.wordpress.com/2012/11/04/session-and-cookies-in-asp-net-mvc-oh-my/ – SBirthare 2014-12-02 08:29:27
好的,谢谢,我将通过这个URL – Ashok 2014-12-02 08:43:32
会议永远不会“维护“通过ViewState,它们完全是分离的机制。 ViewState存储在页面的隐藏字段中,会话数据永远不会发送到浏览器。 – 2014-12-02 09:49:45