每次启动包含.NET Core MVC Web应用程序的Docker镜像时,所有身份验证cookie都将失效,这可能是由于生成的新机器密钥(在签名cookie时使用)。
传统上,这可以通过.NET应用程序的<machineKey/>
中的web.config
元素进行设置。
This link表明DataProtection
包符合该法案,但该包似乎需要完整的胖框架。
确保每次Docker映像重新启动时,正确的方法是什么?不会使现有的auth cookie失效?
答案 0 :(得分:2)
您希望将数据保护密钥放入持久且可共享的位置。
如果您使用的是AWS,AspNetCore.DataProtection.Aws只需几行配置代码即可将密钥环放在S3上。此外,您可以利用AWS KMS加密密钥,这对于实现一致的加密算法特别有用,允许在具有不同默认加密算法的不同操作系统中重用相同的密钥。 KMS选项也是同一个库的一部分。
如果您使用的是AWS以外的其他平台,则需要其他库或安装共享驱动器。但是,为密钥共享相同位置的概念保持不变。