🚚 Rename the DysonNetwork.Shared.Http module

This commit is contained in:
2026-01-18 20:26:34 +08:00
parent a3c1d74501
commit fc2215ec63
24 changed files with 24 additions and 24 deletions

View File

@@ -0,0 +1,41 @@
using System.Net;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.HttpOverrides;
using Microsoft.Extensions.Configuration;
using IPNetwork = System.Net.IPNetwork;
namespace DysonNetwork.Shared.Networking;
public static class KnownProxiesConfiguration
{
public static WebApplication ConfigureForwardedHeaders(this WebApplication app, IConfiguration configuration)
{
var knownProxiesSection = configuration.GetSection("KnownProxies");
var forwardedHeadersOptions = new ForwardedHeadersOptions { ForwardedHeaders = ForwardedHeaders.All };
if (knownProxiesSection.Exists())
{
var proxyAddresses = knownProxiesSection.Get<string[]>();
if (proxyAddresses != null)
{
foreach (var proxy in proxyAddresses)
{
if (IPAddress.TryParse(proxy, out var ipAddress))
forwardedHeadersOptions.KnownProxies.Add(ipAddress);
else if (IPNetwork.TryParse(proxy, out var ipNetwork))
forwardedHeadersOptions.KnownIPNetworks.Add(ipNetwork);
}
}
}
if (forwardedHeadersOptions.KnownProxies.Count == 0 && forwardedHeadersOptions.KnownIPNetworks.Count == 0)
{
forwardedHeadersOptions.KnownProxies.Add(IPAddress.Any);
forwardedHeadersOptions.KnownProxies.Add(IPAddress.IPv6Any);
}
app.UseForwardedHeaders(forwardedHeadersOptions);
return app;
}
}