web-dev-qa-db-ja.com

C#APIコントローラーでリクエストオリジンを取得する

Ajax呼び出しでAPIエンドポイントを呼び出しているときに、APIコントローラーでリクエストのOrigin値を取得する方法はありますか?

たとえば、www.xyz.comからこの呼び出しを行っています。

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

}).error(function (data) {

});

API側で、www.xyz.comの値を取得するにはどうすればよいですか?

CORSは正常に動作しています。

12
Laziale

探しているのはおそらくOrigin-headerです。クロスドメインリクエストを行う場合、最新のブラウザはすべてそれを送信します。

ApiControllerでは、次のようにフェッチします。

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

現在のHTTPリクエストヘッダーコレクションを介してAPIメソッドから取得できます。

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