【问题标题】:Should I store user profile information in cache or session?我应该将用户配置文件信息存储在缓存还是会话中?
【发布时间】:2012-09-05 21:30:27
【问题描述】:

我的网站右上角有一个小菜单,显示用户的名字和姓氏。我把这件作品放在局部视图中。由于这显示在每个页面上,我显然想缓存它,这样我就不必每次加载页面时都获取用户的信息。我应该将它存储在缓存或会话数据中,如果它在每个页面中,我应该在哪里创建我的代码来缓存这些数据?

【问题讨论】:

    标签: c# asp.net asp.net-mvc-3 caching


    【解决方案1】:

    根据场景,您绝对应该使用缓存。正如您所说,您已经将菜单作为部分视图

        [OutputCache(Duration = 3600)]
        public ActionResult mymenu()
        {
            return PartialView();
        }
    

    【讨论】:

      【解决方案2】:

      最好将用户信息存储在 session 中,而不是缓存中。缓存主要是应用程序级别,会话是每个用户/会话。您可以在缓存中存储每个用户的信息,前提是您提供密钥(通过会话或 cookie)。

      这篇文章可能有用:- cache-session-viewstate-c#

      【讨论】:

        【解决方案3】:

        如果您指的是 ASP.Net 缓存,则存储在其中的信息可用于机器上运行的任何 .Net 页面。我认为在你的情况下 Session 会更合适。

        【讨论】:

          【解决方案4】:

          我不确定您使用的是什么身份验证机制,但它可能已经存储在:

          HttpContext.Current.User

          System.Threading.Thread.CurrentPrincipal

          【讨论】:

            【解决方案5】:

            我更喜欢创建一个用户对象,我可以在我的网站上设置我需要的所有方便的参数。

            此对象存储在会话或数据库中,具体取决于站点

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-11-29
              • 2019-11-11
              • 2020-10-08
              • 1970-01-01
              相关资源
              最近更新 更多