2

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

4

5 回答 5

2

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

    [OutputCache(Duration = 3600)]
    public ActionResult mymenu()
    {
        return PartialView();
    }
于 2012-09-12T19:58:33.497 回答
0

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

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

于 2012-09-12T20:02:30.870 回答
0

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

于 2012-09-12T20:02:34.427 回答
0

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

HttpContext.Current.User

或者

System.Threading.Thread.CurrentPrincipal

于 2012-09-12T20:16:22.100 回答
0

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

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

于 2012-09-12T20:19:02.063 回答