我们有一个 ASP.NET core 2.2 web 应用程序,它暴露了一些 web api 控制器。我们的应用程序没有任何类型的身份验证机制,所有暴露的端点都可以由匿名用户调用。
当我们在 IIS 下托管应用程序时,我们会在应用程序启动时收到三个奇怪的警告消息。这些是我们得到的日志:
所有这些日志都将 Microsoft.AspNetCore.DataProtection 作为日志上下文,并由 ASP.NET 核心框架内部编写。
这些日志的含义对我来说似乎很清楚:有一个“密钥”(无论它意味着什么),因为没有提供注册表存储(当然,它会在应用程序退出时丢失)将持久保存在内存中)。还有一个警告表明这个密钥,如果持续存在,将不会以任何方式加密。
此时我会问以下问题:
一些附加信息:
一些在线博客建议这些类型的数据保护警告与 ASP.NET 身份的使用有关,但我们不在我们的应用程序中使用身份(我们没有启用身份验证)。其他博客建议设置托管应用程序池以加载用户配置文件:我已经尝试过,但警告仍然存在。
感谢 asp.net 核心开发团队的帮助,我解决了这个问题。完整参考见我昨天打开的github issue
简而言之,问题与我的开发机器上的 IIS 配置有关。为了使 ASP.NET 核心数据保护按预期工作,IIS 和托管应用程序池有一些特定配置(请参阅此处获取完整参考)
对于在其 ASP.NET core 2.2 web 应用程序中具有相同警告的那些,我建议查看此github 问题。
我们现在已经为我们的产品添加了 cookie 身份验证,我们需要支持 kubernetes 托管。在具有 cookie 身份验证的 kubernetes 中,此 …