在Docker镜像启动之间坚持ASP.NET Coreauthentication

每次包含.NET Core MVC Web应用程序的Docker映像启动时,所有authenticationCookie都将失效,这可能是由于生成了新的机器密钥(在签名Cookie时使用)。

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

这个链接表明DataProtection包将符合这个法案,但是这个包似乎需要全面的框架。

什么是正确的方法来确保每次重新启动Docker镜像都不会使现有的auth cookie失效?

您希望将用于数据保护的密钥放入持久且可共享的位置。

如果您使用的是AWS, AspNetCore.DataProtection.Aws允许通过几行configuration代码将密钥环放在S3上。 另外,您可以利用AWS KMS对密钥进行encryption,这对实现一致的encryptionalgorithm特别有用,允许在具有不同默认encryptionalgorithm的不同操作系统上重复使用相同的密钥。 KMS选项也是同一个库的一部分。

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