C# 库伯内特斯+;Redis:无法解密反伪造令牌
我在Kubernetes的.NETCore3.0上使用Redis数据库进行数据保护,但仍然得到以下错误。有什么想法吗 失败:Microsoft.AspNetCore.Antiforgery.DefaultAntiforgery[7] 反序列化令牌时引发异常。Microsoft.AspNetCore.Antiforgery.AntiforgeryValidationException: 无法解密反伪造令牌。--> System.Security.Cryptography.CryptographyException:密钥 在钥匙圈中未找到{ffb146a1-0e5e-4f96-8566-425f7c2eb99a}。 在 Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingBasedDataProtector.UnprotectCore(字节[]) protectedData,布尔allowOperationsOnRevokedKeys,UnprotectStatus& 状态)在 Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingBasedDataProtector.DangerousUnprotect(字节[]) protectedData,布尔值ignoreRevocationErrors,布尔值& requiresMigration,Boolean&wasrecaded)位于 Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingBasedDataProtector.Unprotect(字节[]) 保护数据)在 Microsoft.AspNetCore.Antiforgery.DefaultAntiforgeryTokenSerializer.Deserialize(字符串 serializedToken)--内部异常堆栈跟踪的结束---at Microsoft.AspNetCore.Antiforgery.DefaultAntiforgeryTokenSerializer.Deserialize(字符串 (说)在 Microsoft.AspNetCore.Antiforgery.DefaultAntiforgery.GetCookieTokenDoesNotThrow(HttpContext httpContext)C# 库伯内特斯+;Redis:无法解密反伪造令牌,c#,asp.net-core,kubernetes,antiforgerytoken,C#,Asp.net Core,Kubernetes,Antiforgerytoken,我在Kubernetes的.NETCore3.0上使用Redis数据库进行数据保护,但仍然得到以下错误。有什么想法吗 失败:Microsoft.AspNetCore.Antiforgery.DefaultAntiforgery[7] 反序列化令牌时引发异常。Microsoft.AspNetCore.Antiforgery.AntiforgeryValidationException: 无法解密反伪造令牌。--> System.Security.Cryptography.CryptographyE
根据下面文章中的文档,需要设置应用程序名称
services.AddDataProtection()
.PersistKeysToStackExchangeRedis(redis, "DataProtection-Keys")
.SetApplicationName("product");
默认情况下,数据保护系统将应用程序彼此隔离
基于它们的内容根路径,即使它们共享相同的内容根路径
物理密钥存储库。这会阻止应用程序理解
相互保护的有效载荷
要在应用程序之间共享受保护的有效负载,请执行以下操作:
- 在每个应用程序中使用相同的值配置SetApplicationName
[HttpPost]
[IgnoreAntiforgeryToken]
我不熟悉Kubernetes,但是在普通的ASP.NET中,如果一个服务器场中有多个服务器,那么每个服务器都必须使用相同的机器密钥,以便它们能够解密由服务器场中其他服务器加密的内容,所以我猜这是类似的。请看一看感谢您的回复,我找不到对.net core 3.0+的机器密钥的引用,根据您的文章.net 2.0,它似乎已用于较旧版本的.net。
[HttpPost]
[IgnoreAntiforgeryToken]