using System;
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;
}
}
}