答案為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() 來新增轉發頭部中介軟體。這樣配置後,應用程式就可以正確理解和處理由轉發代理新增的頭部資訊了。