【问题标题】:What's the strategy of storing User info in ASP.NET MVC4ASP.NET MVC4中存储用户信息的策略是什么
【发布时间】:2013-08-16 18:29:06
【问题描述】:
现在我正在看一本书,书中说:
“会话状态和应用状态都用于存储少量不经常变化的不安全全局信息”
基于此,我有五个问题:
在MVC4中我们可以通过HttpContext.Session访问session,有什么区别
this 和 HttpContext.Current.Session 之间?
申请状态有什么用?
Session 和 Application 状态之间的实际区别是什么?
哪些用户信息不能存储在会话中,只能存储在服务器数据库中?
很多浏览器端的cookies都被禁用了,这是否意味着在开发web应用时cookies不再使用了?
我希望这不仅对我有帮助,也对看到这个的其他人有所帮助
欢迎提出任何建议!
【问题讨论】:
标签:
asp.net-mvc
asp.net-mvc-3
asp.net-mvc-4
【解决方案1】:
没有区别。不在视图中时使用HttpContext.Current.Session。
用于存储适用于所有用户的应用程序范围的信息。一次只有一个,所有用户的值都相同。
会话处于用户级别。应用程序是系统范围的。如果您需要保留特定于用户的信息,请使用 session.如果所有用户的值都相同,请使用 Application。
不明白你的意思
【解决方案2】:
- 它们都指向同一个对象。
-
ApplicationState 如果用于在绑定到具体用户会话的不同 Session 对象之间共享数据
- 我在前一点下说明了主要区别。详细说明:存储在
Session 中的对象只能访问在该会话下运行的请求(它们在 url 中有会话 cookie 或标识字符串)。另一方面,存储在 Application 中的对象随处可用(例如在 global.asax 中),并且不依赖于当前用户。
- 这取决于你的偏执程度。我不会在
Session 中以未加密格式存储信用卡信息或社会保险号或密码。另一方面,我也不会将它们未加密地存储在数据库中。顺便说一下,SessionState 可以配置为驻留在数据库中,从而在不同机器之间共享。
- ASP.NET 与 cookie 配合使用效果更好。有一些方法可以在不使用 cookie 的情况下使其工作,但会涉及大量工作。