在 docker 个图像启动之间保留 ASP.NET 个核心身份验证 cookie

Persist ASP.NET Core auth cookies between docker image launches

每次启动包含 .NET Core MVC Web 应用程序的 Docker 图像时,所有身份验证 cookie 都会失效,这可能是由于生成了新的机器密钥(在签署 cookie 时使用)。

这通常可以通过 .NET 应用程序 web.config 中的 <machineKey/> 元素进行设置。

This link 建议 DataProtection 包符合要求,但该包似乎需要完整的 fat 框架。

确保每次 Docker 图像重新启动时它不会使现有的身份验证 cookie 失效的正确方法是什么?

您想将用于数据保护的密钥放在一个持久且可共享的位置。

如果您使用的是 AWS,AspNetCore.DataProtection.Aws 只需几行配置代码即可将密钥环放在 S3 上。此外,您可以利用 AWS KMS 来加密密钥,这对于实现一致的加密算法特别有用,允许在具有不同默认加密算法的不同操作系统中重复使用相同的密钥。 KMS 选项也是同一库的一部分。

如果您在 AWS 之外的其他平台上,您将需要另一个库或安装共享驱动器。但是键共享相同位置的概念保持不变。