私は https://github.com/Azure-Samples/active-directory-dotnet-webapp-wsfederation起動WEBAPIなしアクセス制御 - 許可 - 起源ヘッダが要求されたリソース上に存在しないスロー
ここで提供WSFederationを経由して、私のMVC 4.6のWebアプリにAzureのADを統合するAzureのサンプルを追跡しようとしていますこのサンプルは、期待どおりに動作します。しかし、WebApiコントローラを同じMVCプロジェクトに追加し、[Authorize]でデコレートするとエラーが発生します。この新しく追加されたWebApiコントローラには、GETメソッドのためのajaxリクエストがあります。
エラーは次のとおりです。あなたの助けのための
XMLHttpRequest cannot load https://login.microsoftonline.com/85c96496-fbc6-4bf3-bfcc-fb51ca874527/wsfe…UIWNgv-EANzWADAQPCOqF--3c7KGt6G21ucvLkce_wMcwVguKz62ioyGPxQg&wa=wsignin1.0. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://localhost:4279' is therefore not allowed access.
ありがとう!
保護されたwebapiコントローラは、他の(保護された)MVCコントローラと同じように自動的にログイン画面にリダイレクトできませんか? – Sam
Ajaxを使用していたので、Azure ADのログインページ(エラーメッセージに記載されているリンク)へのリクエストは既にリダイレクトされていたため、ユーザーのログインを有効にすることはできません。ブラウザでWeb APIを直接リクエストできます。ユーザーをログインページにリダイレクトする必要があります。 –
私のシナリオはどのように扱うべきですか? Webアプリケーションのユーザーは、ajaxまたはサーバー側のMVCコントローラーアクションを介して任意の順序でWebApiを呼び出すことができます。 MVCコントローラを最初に使用するように強制することはできません。あなたのアドバイスをありがとう。 – Sam