using Microsoft.AspNetCore.Http; namespace IOL.Helpers { public static class HttpRequestHelpers { /// /// 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; } } }