gpt4 book ai didi

c# - 如何存储/检索大量用户身份声明

转载 作者:行者123 更新时间:2023-11-30 23:04:42 26 4
gpt4 key购买 nike

我有一个发布到 Web 服务器场的 ASPNET CORE 2.0 网站。我正在使用身份角色/用户声明进行授权。我有大量与已登录用户关联的声明,这会增加应用程序 cookie 的大小。我看到了一些处理这种情况的技巧,但不确定该采取什么方法。

  • 使用自定义 ClaimsTransformer:在身份角色/用户声明表之外创建自定义数据库存储,并将声明加载到 TransformAsync 上。我不确定是否有更好的解决方案不涉及每次往返服务器的数据库调用。
  • 在指定 ApplicationCookie 时指定分布式缓存 session 存储。我不确定这是否会解决膨胀的 cookie 问题。
  • 使用粘性 session 来存储用户声明。我认为这不适用于 claim 授权 ([Authorize])

当用户有大量声明时,如何跨多个 Web 服务器使用基于声明的身份?

最佳答案

Cookie 大小基本上是反对“一切都是声明”的最有力论据,不幸的是,该模型运行良好,否则(我一直站在你的立场上)。正如您所怀疑的那样,最好的方法是将您的声明限制在最低限度,并根据需要使用身份(主题 ID)从数据库中检索更详细的特定于应用程序的信息。

如果数据库响应时间是一个问题,那么您基本上又回到了有状态 session 数据。 Microsoft 可能会引导您使用 Redis 内存缓存。不确定这是否是 Amazon 上的一个选项,我使用的是 Azure。

我尝试了 ClaimsTransformer 例程,但它变成了一个更大的麻烦,不断地解决“这真的是一个声明还是我们只是将其视为声明?”而不是仅仅将真实 IDP 声明的持久性/检索与内部应用程序级用户数据分开。

关于c# - 如何存储/检索大量用户身份声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49200617/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com