在可扩展Azure App Service中使用Asp.Net Core数据保护的疑问
ASP.NET Core Data Protection 在Azure App Service横向扩展环境中的密钥环一致性问题
- 当ASP.NET Core应用部署在Azure App Service并横向扩展时,默认所有实例会共享同一个密钥环,用户连接不同节点不会出现Cookie解密失败的问题。
- 原因在于Azure App Service为应用提供了共享的持久化存储(
D:\home目录),ASP.NET Core的Data Protection组件在该环境下会自动将密钥环持久化到这个共享目录中,所有扩展出来的实例都能读取到同一套密钥。 - 除非你手动修改了Data Protection的存储配置(比如指定了仅单实例可访问的本地存储),否则不会出现密钥环不一致的情况。
- 在无会话亲和性的场景下,只要密钥环保持一致,用户的请求无论被路由到哪个实例,都能正常解密加密后的Cookie值。
内容的提问来源于stack exchange,提问作者Stix
相关产品推荐
相关产品推荐

