在docker镜像启动之间保留ASP.NET Core auth cookie

时间:2016-11-03 22:54:32

标签: cookies docker asp.net-core asp.net-core-mvc asp.net-core-identity

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

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

This link表明DataProtection包符合该法案,但该包似乎需要完整的胖框架。

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

1 个答案:

答案 0 :(得分:2)

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

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

如果您使用的是AWS以外的其他平台,则需要其他库或安装共享驱动器。但是,为密钥共享相同位置的概念保持不变。