c# - 无法使用 IDistributedCache 缓存 AuthenticateResult 条目
问题描述
如果我们希望缓存 JSON Web Tokens,我们可以使用一个IMemoryCache
实现并只存储 的结果JwtBearerHandler.HandleAuthenticateAsync()
,即 type AuthenticateResult
。
问题在于,与IMemoryCache
实际存储对对象的引用不同,IDistributedCache
存储 a byte[]
,这意味着我们需要使用序列化来以该形式存储对象。
IDistributedCache
已经有将字符串序列化为字节数组的扩展方法,所以我们需要做的就是使用任何 JSON 序列化器来序列化/反序列化数据。
序列化AuthenticateResult
对象时,一切都很好。但是当我们想要反序列化它时问题就来了。AuthenticateResult
没有无public
参数构造函数,这意味着我们实际上无法获取AuthenticateResult
back 的实例,即使它已成功存储在缓存中。
是否有解决方法,或者对于这种缓存场景,我们总是被迫坚持IMemoryCache
实施?
解决方案
推荐阅读
- html - 如何在 html/css 中分隔 2 个 div 框?
- python - 有条件地替换分组值
- c++ - Eratosthenes C++ 实现的筛选(来自于 Soustrup C++ 编程原理一书)
- c# - 无需身份验证即可访问 Azure Blob 文件
- flutter - Flutter:Mysql如何将行数据从ListView传递到Card
- asp.net - ASP MVC ICollection 长度验证 - 防止表单提交
- deep-learning - 如何微调句子转换器以理解语义相似性
- java - 仅当配置文件在另一个依赖项中时才循环依赖
- python - 在进程之间发送 panda DataFrame
- pdf - 如何编辑 Pandoc 本地化术语?