【问题标题】:What's the strategy of storing User info in ASP.NET MVC4ASP.NET MVC4中存储用户信息的策略是什么
【发布时间】:2013-08-16 18:29:06
【问题描述】:

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

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

基于此,我有五个问题:

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

  2. 申请状态有什么用?

  3. Session 和 Application 状态之间的实际区别是什么?

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

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

我希望这不仅对我有帮助,也对看到这个的其他人有所帮助

欢迎提出任何建议!

【问题讨论】:

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


    【解决方案1】:
    1. 没有区别。不在视图中时使用HttpContext.Current.Session

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

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

    4. 不明白你的意思

    【讨论】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-08-04
        • 2014-10-01
        • 2015-08-28
        • 1970-01-01
        • 1970-01-01
        • 2022-01-25
        • 2014-06-06
        • 1970-01-01
        相关资源
        最近更新 更多