首页 新闻 会员 周边

ASP.NET Core Data Protection Key 过期引起的登录 Cookie 失效问题

0
悬赏园豆:100 [待解决问题]

这是昨天实际遇到的问题,用户登录成功并拿到了 cookie ,但访问 asp.net core 站点时总是显示未登录,而在出问题之前登录的用户没这个问题。

根据这个现象推测可能是登录时用于生成 cookie 的加密密钥(data protection key)与访问时用于解密 cookie 的 key 不一致引起的,于是重启所有 asp.net core 站点以重新加载最新的密钥,重启后问题解决。

查看存储在 redis 中的 data protection keys,发现2天前由于 key 到期(默认有效期是90天),data protection system 自动生成了新的 key ,新的 key 有2天的激活期,如果在2天内被正常激活,会实现 key 的无缝切换,对系统无任何影响。但不知为什么这个新 key 在 2天中没有被激活,于是 data protection system 又重新生成了一个 key ,结果造成登录时使用新 key 加密,访问时却使用旧 key 解密。

请问如何在 asp.net core 中如果避免出现这样的问题?

dudu的主页 dudu | 高人七级 | 园豆:30994
提问于:2018-11-24 14:12

.net 5.0 开始没再遇到这个问题

dudu 2年前
< >
分享
所有回答(2)
0

你的问题有点复杂,我都没看懂

Eysa | 园豆:62 (初学一级) | 2018-11-30 18:02
0

我也遇到了同样的情况..我选择直接设置秘钥为10年有效期..

GuZhenYin | 园豆:222 (菜鸟二级) | 2022-02-21 15:49

.net 5.0 开始我们没再遇到这个问题

支持(0) 反对(0) dudu | 园豆:30994 (高人七级) | 2022-02-21 17:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册