asp.net – 在自定义声明中保留用户安全配置文件数据

我的应用程序必须从外部服务获取数据,使用由用户api密钥& api秘密.

我想阻止大量的重新审查数据库的必要密钥查询并将其保存在其他地方(假设这些密钥不会过于频繁地更新).

从我的观点来看,它可以通过下一个选项实现:

>将MemoryCache提供程序与SlidingExpiration一起使用;
>创建自定义声明并将其附加到现有Identity声明集合中;

如果我错了,请纠正我,但如果我意识到这一点 – 声明的信息是数据的一部分,用于前端的序列化/反序列化< - >后端交互(我对它不太有信心),但假设它在cookies和令牌中使用).

实际上,这些密钥对于多个后台进程(例如,消息队列使用者或预定作业)也是必需的.

你介意让我知道一种以优化的方式持久保存这些受保护和经常使用的字段的正确方法吗?

先感谢您.

解决方法

当您使用SignInManager的登录方法之一登录时,它会在浏览器上设置一个cookie,其中包含访问令牌.此Cookie包含声明数据.因此,在后续授权请求中,您可以查询User.Claims字段以访问所需字段,而无需访问数据存储区.

现在,您是否选择使用声明完全取决于您需要API Key / Secret的频率.您的声明是访问令牌的一部分.如果在每个请求上发送API密钥/密钥是合理的,则声明是理想的选择.

更新:

而不是在前端解密令牌,最好将它们与访问令牌一起发送到前端客户端.

如果你不知道IdentityServer4OpenIddict做了检查.它可能得到了你所需要的一切.

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....