我应该在缓存或会话中存储用户配置文件信息吗?

时间:2012-09-12 19:53:18

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

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

5 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

如果您正在引用ASP.Net Cache,则存储在其中的信息可供计算机上运行的任何.Net页面使用。我认为在你的情况下会议会更合适。

答案 3 :(得分:0)

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

HttpContext.Current.User

System.Threading.Thread.CurrentPrincipal

答案 4 :(得分:0)

我更喜欢创建一个User对象,我在网站上设置了所有方便的参数。

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