Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET MVC缓存用户信息(主体)_C#_Asp.net_Asp.net Mvc_Authorization_.net 4.5 - Fatal编程技术网

C# ASP.NET MVC缓存用户信息(主体)

C# ASP.NET MVC缓存用户信息(主体),c#,asp.net,asp.net-mvc,authorization,.net-4.5,C#,Asp.net,Asp.net Mvc,Authorization,.net 4.5,我有一个较旧的ASP.NET MVC应用程序运行在.NET Framework 4.5.2上,它为用户使用windows身份验证(它是intranet),然后是存储用户数据的自定义主体(用户权限,一些经常需要的其他元数据) 我需要“缓存”这些数据,而不是在每次请求时都重新加载它们,因为从多个来源获取这些数据的过程既昂贵又耗时 例如,假设每小时重新加载一次就足够了 正确保存用户数据(自定义主体)的选项有哪些? 正如现在所做的那样,我们正在使用一种我不喜欢的解决方案,但想不出/找到更好的解决方案 我

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

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

例如,假设每小时重新加载一次就足够了

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

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

  • 我们在
    global.asax.cs

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

    • 主体被反序列化并在
      HttpContext.Current.User
      中设置为主体(如果存在cookie)
  • 我尝试过谷歌搜索,但我不知道如何恰当地询问,也无法得到我想要的结果。欢迎提供解决此问题的首选方法的任何信息