首页 > 解决方案 > ASP.NET MVC 缓存用户信息(主体)

问题描述

我有一个在.NET Framework 4.5.2上运行的较旧的ASP.NET MVC 应用程序,它为用户使用Windows 身份验证(它是 Intranet),然后使用存储用户数据的自定义主体(用户权限、其他一些经常需要的元数据)。

我需要“缓存”这些数据,而不是在每次请求时重新加载它们,因为从多个来源获取它们的过程既昂贵又耗时。

例如,假设每小时重新加载它们就足够了。

我有哪些正确保存用户数据(自定义主体)的选项?

正如现在所做的那样,我们正在使用我不喜欢的解决方案,但想不出/找到更好的解决方案。

  1. 我们WindowsAuthentication_OnAuthenticateglobal.asax.cs

    • 如果没有有效的授权 cookie,我们会尝试通过以下方式创建一个:
      • 我们加载用户的信息并创建我们的CustomPrincipal
      • 将其序列化并将其存储在FormAuthenticationTicket
      • 然后加密并存储在HttpCookie
  2. 然后在执行中检索Application_PostAuthenticateRequestcookieglobal.asax.cs

    • HttpContext.Current.User如果有 cookie ,则主体被反序列化并设置为主体

我尝试使用谷歌搜索,但我不知道如何正确询问并且无法获得我正在寻找的结果。感谢您提供有关解决此问题的首选方法的任何信息。

标签: c#asp.netasp.net-mvcauthorization.net-4.5

解决方案


推荐阅读