我有一个简单的 asp.net core 3.1 应用程序,可以打印出 index.cshtml 页面中的 HTTPRequest 。 我对应用程序进行了容器化,并在 azure appservice 中运行它。
有很多代码不是我拥有的,例如 microsoft OIDC 的东西,它们依赖于 HTTPRequest.Scheme 来构建重定向 URL。进入我的容器化应用程序的请求是 HTTP,即使原始请求 URL 如下所示;
https://app-chaosbunny.azurewebsites.net/
当我打印出应用程序认为 HTTPRequest 中的内容时,我得到了;
http://app-chaosbunny.azurewebsites.net/
不用说,当OIDC的东西构建redirectUrl时,它是HTTP方案,这是错误的。
“应用服务”有一个 TLS/SSL 设置,您可以在其中打开“仅 HTTPS”。这没有任何效果。
我是否缺少强制将正确方案传递到容器的设置?
最佳答案
发生这种情况很可能是因为应用服务在前端终止了 SSL。发送给应用程序所在工作线程的请求始终是 HTTP。检查 X-Arr-Ssl header 。该 header 的存在告诉您该请求是作为 SSL 请求传入的。
吉姆
关于azure应用程序服务容器未获取HTTPS方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63364560/