在ASP.NET MVC4中存储用户信息的策略是什么

时间:2013-08-16 18:29:06

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

现在我正在读一本书并在书中说:

“会话状态和应用程序状态都用于存储少量不经常更改的不安全全局信息”

基于此,我有五个问题:

  1. 在MVC4中我们可以通过HttpContext.Session访问会话,有什么区别 介于此和HttpContext.Current.Session?

  2. 之间
  3. 用于什么应用程序状态?

  4. 会话和应用程序状态之间的实际区别是什么?

  5. 我们无法在会话中存储但只存储在服务器数据库中的用户信息?

  6. 许多浏览器端cookie已被禁用,这是否意味着在开发Web应用程序时不再使用cookie?

  7. 我希望这不仅有助于我,也会帮助其他人看到这个

    欢迎任何建议!

2 个答案:

答案 0 :(得分:2)

  1. 没有区别。当您不在视图上时使用HttpContext.Current.Session

  2. 用于存储适用于所有用户的应用程序范围的信息。一次只有一个,所有用户的值都相同。

  3. 会话属于用户级别。应用程序是系统范围的。如果您需要保留特定于用户的信息,请使用会话。如果所有用户的值都相同,请使用Application。

  4. 不确定您的意思

答案 1 :(得分:2)

  1. 他们都指向同一个对象。
  2. ApplicationState如果用于在与具体用户会话关联的不同Session对象之间共享数据
  3. 我说明了前一点的主要区别。详细说明:Session中存储的对象只能访问在该会话下运行的请求(它们在URL中具有会话cookie或标识字符串)。另一方面,存储在Application中的对象随处可用(例如在global.asax中)并且不依赖于当前用户。
  4. 这取决于你的偏执程度。我不会在Session中以未加密的格式存储信用卡信息或社会安全号码或密码。另一方面,我也不会将它们以未加密的方式存储在数据库中。顺便说一下,SessionState可以配置为驻留在数据库中,从而在不同的机器之间共享。
  5. 使用Cookie可以更好地运行ASP.NET。有一些方法可以让它在没有cookie的情况下工作,但它会涉及很多工作。