using Aspire.Hosting.Lifecycle; namespace eShopOnAbp.AppHost; internal static class Extensions { /// /// Adds a hook to set the ASPNETCORE_FORWARDEDHEADERS_ENABLED environment variable to true for all projects in the application. /// public static IDistributedApplicationBuilder AddForwardedHeaders(this IDistributedApplicationBuilder builder) { builder.Services.TryAddLifecycleHook(); return builder; } private class AddForwardHeadersHook : IDistributedApplicationLifecycleHook { public Task BeforeStartAsync(DistributedApplicationModel appModel, CancellationToken cancellationToken = default) { foreach (var p in appModel.GetProjectResources()) { p.Annotations.Add(new EnvironmentCallbackAnnotation(context => { context.EnvironmentVariables["ASPNETCORE_FORWARDEDHEADERS_ENABLED"] = "true"; })); } return Task.CompletedTask; } } }