在会话中存储数据或httpcontext对象之间有什么区别

时间:2012-06-28 14:51:21

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

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

Session["User"] = user;

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

感谢您的想法!

1 个答案:

答案 0 :(得分:2)

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

会话是每个USER商店。由于会话被每个请求的用户sessionid锁定,因此它的性能不佳,因此重叠请求可能会在等待对象变为可用时出现性能问题。

其他用户都无法使用这两个用户,除非在会话中,有人窃取(网络上的sniif)会话ID并劫持该会话。即使这样,除非你有一个跟踪页面,否则数据是不可访问的,但请记住,恶意用户可能能够以不同的用户浏览页面,如果能够窃取它并形成身份验证令牌(仅作为一个示例)