diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/IOL.Helpers/HttpRequestHelpers.cs | 18 |
1 files 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; + /// <summary> + /// Get's the scheme and host (scheme://host) value of the current HttpRequest + /// </summary> + /// <param name="request">HttpRequest to retrieve value from</param> + /// <param name="ignoreForwared">Ignore header values like X-Forwarded-Host|Proto</param> + /// <returns></returns> + 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; |
