【问题标题】:Azure App gateway not passing authentication header to back end poolAzure App 网关未将身份验证标头传递到后端池
【发布时间】:2020-07-10 12:24:28
【问题描述】:

我们有一个经典的 asp.net Web API 服务在 Azure VM(IIS) 上运行,并将其配置为 azure 应用程序网关中的后端池,并且 API 服务在 windows NTLM 身份验证上运行(为了支持一些向后兼容性以及对遗留组件的依赖)。 API 中的控制器之一用于上传服务。当我直接通过应用程序网关端点使用 Insomnia/postman 调用服务时,它工作正常。
但是当我尝试通过 .Net 核心客户端应用程序使用相同的应用程序网关端点时。它总是未经授权的。应用网关未将 NTLM 标头发送到后端池

这是我用来消费服务的客户端代码

【问题讨论】:

    标签: azure asp.net-core-webapi azure-application-gateway


    【解决方案1】:

    在对应用程序网关和 IIS 日志问题进行了一整天的研究之后。最后,我能够弄清楚这个问题。问题主要与 .Net Core HttpClient 有关。 HttpClient 在使用多部分表单数据调用 PostAsync 方法时未能发送 NTLM 标头详细信息。因此,在禁用 SocketsHttpHandler 后,我必须以下列方式使用 SendAsync 方法,而不是调用 PostAsync

    【讨论】:

      猜你喜欢
      • 2012-12-18
      • 1970-01-01
      • 1970-01-01
      • 2013-04-26
      • 1970-01-01
      • 2012-09-22
      • 1970-01-01
      • 2021-08-17
      • 2018-07-22
      相关资源
      最近更新 更多