Microsoft.AspNetCore.Builder.ForwardedHeadersOptions

yinghualeihenmei發表於2024-07-01

答案為ai生成

ForwardedHeadersOptions 是 ASP.NET Core 中用於配置轉發頭部的一個類。當應用程式位於負載均衡器(https://blog.csdn.net/cyl101816/article/details/135195729)、反向代理伺服器(https://cloud.tencent.com/developer/techpedia/2253)等後面時,由於 HTTP 請求會透過多個代理或轉發,原始的請求頭(如 X-Forwarded-For 和 X-Forwarded-Proto)可能會丟失或不正確。為了讓 ASP.NET Core 應用程式能正確理解請求的原始資訊,需要配置中介軟體以轉發這些頭部。

以下是如何配置 ForwardedHeadersOptions 的示例程式碼:

public void ConfigureServices(IServiceCollection services)
{
    // 新增其他服務到容器
 
    // 配置轉發頭部中介軟體
    services.Configure<ForwardedHeadersOptions>(options =>
    {
        options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
        // 可以配置可信的代理伺服器地址
        // options.KnownNetworks.Clear();
        // options.KnownProxies.Clear();
    });
}
 
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    // 如果在開發環境中,使用開發者異常頁面
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    // 新增轉發頭部中介軟體
    app.UseForwardedHeaders();
 
    // 新增其他中介軟體
    app.UseRouting();
 
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers();
    });
}

  在 ConfigureServices 方法中,我們使用 services.Configure<ForwardedHeadersOptions> 來配置中介軟體選項。在 Configure 方法中,我們使用 app.UseForwardedHeaders() 來新增轉發頭部中介軟體。這樣配置後,應用程式就可以正確理解和處理由轉發代理新增的頭部資訊了。