3

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

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

基于此,我有五个问题:

  1. 在MVC4中我们可以通过HttpContext.Session来访问session,这和HttpContext.Current.Session有什么区别呢?

  2. 申请状态有什么用?

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

  4. 对于哪些用户信息我们不能存储在会话中而只能存储在服务器数据库中?

  5. 很多浏览器端的 cookie 都被禁用了,这是否意味着在开发 Web 应用程序时不再使用 cookie?

我希望这不仅对我有帮助,而且会帮助其他看到这个的人

欢迎任何建议!

4

2 回答 2

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

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

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

  4. 不明白你的意思

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