gpt4 book ai didi

asp.net - Session 在 MVC 中实际上是如何工作的?

转载 作者:行者123 更新时间:2023-12-04 01:36:02 25 4
gpt4 key购买 nike

我对 MVC4 中的 session 管理有点困惑。

比方说,我输入了用户名和密码,然后点击了登录按钮。
然后在服务器端,我从 HttpContext.Current.Session 得到了 SessionId。然后我根据数据库验证该用户凭据。如果用户有效,则在 Session 中添加 SessionId、userName 和 uiserId。

可以说,下次请求来自同一台机器和同一浏览器时,我得到了相同的 SessionId,然后允许该用户访问其他信息。

现在我有以下问题:

  • 服务器如何知道请求来自同一浏览器和同一台机器?
  • 我发现,不同浏览器的 SessionId 是不同的,但对于不同机器上的相同浏览器是相同的,所以如果我从 machine1 和谷歌浏览器登录,那么是否可以为不同的浏览器使用相同的 session ?(意味着 session 将是可以在不同的机器上使用相同的浏览器。这可能吗?)
  • 服务器如何理解请求是针对已登录的同一用户?
  • 在asp.net中session是由viewState维护的,但是MVC中没有使用view state,那么MVC中使用的是什么呢?
  • 最佳答案

    首先我建议阅读this Wikipedia article关于 HTTP session 。关于你的问题的答案:

  • 对于每个请求,客户端都会发送它的 SessionId在 cookie 中
    或查询字符串。
  • 这在默认情况下是不可能的。但是可以通过session hijacking来完成.
  • 服务器读取 SessionId这是由问题 1 中的客户端发送的。例如,服务器维护一个键值数据对象,以便它可以为给定的 SessionId 加载正确的数据。 .
  • ASP MVC 不使用 View 状态,因为它与 ASP.NET 完全不同。见 this question想要查询更多的信息。
  • 关于asp.net - Session 在 MVC 中实际上是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27244885/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com