由于 OWIN 身份验证管理器,具有不记名令牌的 .NET Web API 应用停止工作

.NET Web API apps with bearer token stopped working due to OWIN authentication manager

我将尝试尽可能多地解释正在发生的事情,希望有人能够提供帮助。

我有 2 个 .NET 应用程序,它们在很长一段时间内都运行良好。其中一个是邮件服务,另一个是将文件上传到 Azure 上的 Blob 存储的应用程序。

这些应用程序使用来自本地令牌提供商的不记名令牌。 在启动时,JwtBearerAuthentication 用于设置令牌提供者信息。认证方式为Active。 由于与基于异常的 OWIN 身份验证管理器有关,这两个应用程序突然停止。 其中之一是返回错误代码 500 内部服务器错误,异常消息是 “没有与请求关联的 OWIN 身份验证管理器”。 =34=]。 显然,如果我在 WebApiConfig.cs:

中注释掉以下两行
config.SuppressDefaultHostAuthentication();
config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType)

它会正常工作,但那是因为它不再检查令牌。 根据我所见,NuGet 包很好。

我还可以看到正在创建并传递给应用程序的不记名令牌。

过去 4 天我一直在尝试调试并查看可能导致问题的原因,但没有成功。 我一直试图在 IIS 中逐行 运行,但找不到任何东西。

遗憾的是我不能分享代码,但我非常乐意澄清任何遗漏的部分。

如有任何想法、建议或尝试提供帮助,我们将不胜感激。

谢谢!

事实证明,无论出于何种原因,web.config 丢失了包 Microsoft.Owin.Host.SystemWeb。 这导致 Startup.cs 不 运行 导致错误消息 “没有 OWIN 身份验证管理器与请求关联”.