如何覆盖方法 'ConfigureAuthentication' IdentityServer4

How can I override the method 'ConfigureAuthentication' IdentityServer4

主要的 ConfigureAuthentication 位于 StartupDomainServiceBase.cs 单独的容器中。我正在使用 Webhooks,因此我的令牌位于请求的 body 中(通常位于 header 中)。所以我尽了最大努力,将 options.TokenRetriever = CustomTokenRetriever.FromBody 添加到主身份验证功能中,但这会影响其他正在从 header 读取令牌的容器。 因此,我必须仅在我的项目所在的容器中的 Startup.cs 中设置此配置。 我该怎么做?

Startup.cs 继承自 StartupDomainService ,因此正如我所见,它们重写了那里的一些方法以便对它们进行 costumize。 (例如 ConfigurCustomServices 或 ConfigureAuthorization)。但是当我试图覆盖 ConfigureAuthentication 时,它说它不能完成,因为它是密封的,但其他方法也是密封的...我不明白...

有人有想法或建议吗?这将非常有帮助。

(顺便说一下,我正在使用 C#,Visual Studio,Docker 容器,nginx 服务)

也许在 ASP.NET 核心管道中添加自定义中间件,它可以检查传入的请求,如果在 body 中找到令牌,则将其添加为 header 在 HttpContext 中,以便身份验证系统满意?

或者您可以在您的服务前面添加一个代理(如 Yarp)来为您执行此转换。