diff --git a/EssentialCSharp.Web/Program.cs b/EssentialCSharp.Web/Program.cs index 42df3e32..24e14289 100644 --- a/EssentialCSharp.Web/Program.cs +++ b/EssentialCSharp.Web/Program.cs @@ -15,6 +15,7 @@ using EssentialCSharp.Web.Tools; using Mailjet.Client; using Microsoft.AspNetCore.Authentication; +using Microsoft.AspNetCore.Http.Extensions; using Microsoft.AspNetCore.HttpOverrides; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Identity.UI.Services; @@ -454,7 +455,9 @@ await context.HttpContext.Response.WriteAsync( ? configuredBaseUri.Host[4..] : configuredBaseUri.Host; string wwwHost = $"www.{apexHost}"; - string redirectAuthority = new UriBuilder(configuredBaseUri) { Host = apexHost }.Uri.GetLeftPart(UriPartial.Authority); + Uri apexUri = new UriBuilder(configuredBaseUri) { Host = apexHost }.Uri; + string redirectScheme = apexUri.Scheme; + HostString redirectHost = new HostString(apexUri.Authority); app.UseExceptionHandler(exceptionApp => { @@ -531,7 +534,7 @@ await McpJsonRpcResponseWriter.WriteErrorAsync( { if (string.Equals(context.Request.Host.Host, wwwHost, StringComparison.OrdinalIgnoreCase)) { - string redirectUrl = $"{redirectAuthority}{context.Request.PathBase}{context.Request.Path}{context.Request.QueryString}"; + string redirectUrl = UriHelper.BuildAbsolute(redirectScheme, redirectHost, context.Request.PathBase, context.Request.Path, context.Request.QueryString); context.Response.Redirect(redirectUrl, permanent: true); return; }