【问题标题】:ASP.net MVC removing repeated data callsASP.net MVC 删除重复数据调用
【发布时间】:2010-11-09 07:19:54
【问题描述】:

我有一个使用 ASP.net 身份验证的 asp.net mvc 站点。我有一个 UserInformation 表,它还存储了每个用户的额外信息。在几乎每个页面上,我都会调用数据库以至少一次提取当前用户的 UserInformation 记录。

我认为所有这些重复数据调用相同的信息必须是矫枉过正。无论如何我可以减少这些吗?缓存?存储用户信息记录以备将来使用等?

我确定我不是第一个遇到这个问题的人,所以我不想重新发明轮子。

提前致谢

【问题讨论】:

    标签: asp.net-mvc-2 asp.net-authentication data-caching


    【解决方案1】:

    您可以使用自定义的 IIdentity 和 IPrincipal。这是一个很好的 article 描述如何实现这一点(有趣的部分发生在 btnAuthenticate_Click 方法中,在 ASP.NE MVC 应用程序中将是身份验证控制器操作,这里发出带有自定义数据的身份验证票证)。在此示例中,我们的想法是手动创建身份验证票证,并使用 userData 属性来存储附加信息。如果您有大量数据,这可能不适合您的情况,因为这些数据存储在 cookie 中。但是,您可以将其存储在其他位置,例如 Session 或 Cache,而不是使用 userData。您还可以编写一个自定义的[Authorize] 属性来处理自定义主体(文章中与Application_AuthenticateRequest 方法对应的部分应该进入此自定义授权过滤器,以便重新构造用户)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-13
      相关资源
      最近更新 更多