【问题标题】:What is the difference between storing data in a session or the httpcontext object在会话或 httpcontext 对象中存储数据有什么区别
【发布时间】:2012-06-30 03:06:17
【问题描述】:

我正在构建一个 MVC3 应用程序,该应用程序需要存储安全的用户信息,例如用户 ID、用户名、电话和电子邮件。在我的研究中,我看到人们使用 httpcontext 对象以及将用户对象存储在会话状态中。

Session["User"] = user;

之前存储在用户对象中的数据。我想知道 Session[""] 和 HttpContext 对象之间的区别是什么,以及这些方法中的任何一个是否是存储这些数据的安全方式。

感谢您的意见!

【问题讨论】:

  • 如何在HttpContext 上存储对象?你有这个示例代码吗?

标签: asp.net-mvc asp.net-mvc-3 session-state httpcontext


【解决方案1】:

HttpContext.Current.Items 是按请求存储的。其他用户无法访问。

会话是每个用户存储。由于每个请求的用户 sessionid 都会锁定会话,因此它的性能很差,因此重叠的请求在等待对象可用时可能会出现性能问题。

除非在会话的情况下,其他用户都无法使用两者,否则有人窃取(网络上的嗅探器)会话 ID 并劫持了该会话。即使那样,除非您有跟踪页面,否则数据仍无法访问,但请记住,如果能够窃取该页面并形成身份验证令牌(仅作为一个示例),那么邪恶的用户可能能够以其他用户身份浏览页面

【讨论】:

    猜你喜欢
    • 2018-06-26
    • 2016-02-27
    • 2020-11-10
    • 2012-12-30
    • 1970-01-01
    • 2016-10-19
    • 1970-01-01
    • 1970-01-01
    • 2013-12-28
    相关资源
    最近更新 更多