Получить запрос источника в С# API-контроллере

Есть ли способ, как я могу получить значение источника запроса в контроллере API, когда я вызываю конечную точку API с помощью вызова AJAX?

Например, я звоню с www.xyz.com:

$http({
    url: 'http://myazurewebsite.azurewebsites.net/api/ValueCall/CheckForExistingValuers',
    method: "GET",
    params: { loanID: $scope.loanIdPopup }
}).success(function (data) {

}).error(function (data) {

});

Как только я получу значение www.xyz.com?

CORS работает правильно.

Ответ 1

То, что вы ищете, вероятно, является заголовком origin. Все современные браузеры отправляют его, если вы выполняете кросс-доменный запрос.

В ApiController вы получите его так:

if (Request.Headers.Contains("Origin"))
{
    var values = Request.Headers.GetValues("Origin");
    // Do stuff with the values... probably .FirstOrDefault()
}

Ответ 2

Вы можете получить его из методов API через текущую коллекцию заголовков HTTP-запросов:

  IEnumerable<string> originValues;
  Request.Headers.TryGetValue("Origin", out originValues)

Ответ 3

Вы пробовали внутри своего контроллера что-то вроде:

public IHttpActionResult Post()
    {
        //get host from where the request came
        string host = this.Request.Headers.Host;

        return Ok();


    }