From 80ebf2b88b811a4b483e3abb79d7741646772cf0 Mon Sep 17 00:00:00 2001 From: ivarlovlie Date: Fri, 16 Apr 2021 19:20:20 +0200 Subject: Rename HttpRequestHelpers.GetAppHost -> HttpRequestHelpers.GetRequestHost Rename and add optional parameter to skip X-Forwarded-Host and X-Forwarded-Proto --- src/IOL.Helpers/HttpRequestHelpers.cs | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/IOL.Helpers/HttpRequestHelpers.cs b/src/IOL.Helpers/HttpRequestHelpers.cs index 5a0e145..a5f015e 100644 --- a/src/IOL.Helpers/HttpRequestHelpers.cs +++ b/src/IOL.Helpers/HttpRequestHelpers.cs @@ -5,11 +5,19 @@ namespace IOL.Helpers { public static class HttpRequestHelpers { - public static string GetAppHost(this HttpRequest request) { - var forwardedHostHeader = request.Headers["X-Forwarded-Host"].ToString(); - var forwardedProtoHeader = request.Headers["X-Forwarded-Proto"].ToString(); - if (forwardedHostHeader.HasValue()) { - return (forwardedProtoHeader ?? "https") + "://" + forwardedHostHeader; + /// + /// Get's the scheme and host (scheme://host) value of the current HttpRequest + /// + /// HttpRequest to retrieve value from + /// Ignore header values like X-Forwarded-Host|Proto + /// + public static string GetRequestHost(this HttpRequest request, bool ignoreForwared = false) { + if (!ignoreForwared) { + var forwardedHostHeader = request.Headers["X-Forwarded-Host"].ToString(); + var forwardedProtoHeader = request.Headers["X-Forwarded-Proto"].ToString(); + if (forwardedHostHeader.HasValue()) { + return (forwardedProtoHeader ?? "https") + "://" + forwardedHostHeader; + } } return request.Scheme + "://" + request.Host; -- cgit v1.3