我正在Azure和Cloud Flare之后托管ASP.NET Core 3应用程序。应用程序的默认HttpContext.Request.Scheme
是HTTP,我想将其更改为HTTPS。因此,我需要从Cloud Flare拦截X-Forwarded-Proto
。
我发现ASP.NET Core可以做到这一点,并且具有内置解决方案。所以我加了
public void ConfigureServices(IServiceCollection services)
{
services.Configure<ForwardedHeadersOptions>(options =>
{
options.ForwardedHeaders =
ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
});
//***
}
和
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseForwardedHeaders();
//***
}
不幸的是,HttpContext.Request.Scheme
仍然通过请求中存在的HTTP
标头返回X-Forwarded-Proto
。为什么代码不起作用?
X-Forwarded-Proto: [
"https"
],