別のドメインの .NET Web API に実装された API と対話する必要がある AngularJS フレームワークを使用する単一ページ アプリケーションがあります。
問題
API は .NET Web API で実装されています。API にアクセスするユーザーを認証するために、MVC シングル ページ アプリケーション テンプレートを実装しました。これは、FormsAuthentication を使用して API へのアクセスを許可します。
デバッグには Fiddler を使用しました。ブラウザーで直接認証が必要な API のコントローラーにアクセスすると、ユーザーが実際に認証されていることを確認できました。XMLHttpRequest を実行したとき、疑わしいように、ヘッダーで認証 Cookie が送信されませんでした。
ここで実現したいことは、FormsAuthentication を使用して、できれば XMLHttpRequests を介して .NET Web API にアクセスすることです。
これに対する提案された解決策の 1 つは、.NET Web API と MVC の間でセッションを共有することでした。.NET Web API とプロジェクトの MVC 部分の間で状態を簡単に維持するにはどうすればよいでしょうか?
RESTful ではないことはわかっていますが、この問題を迅速に解決する必要があります。
PS!FormsAuthentication は、[Authorize] 属性を使用して .NET Web API コントローラーと連携します。コントローラーが XMLHttpRequests でアクセスできないことだけです。
XMLHttpRequest 使用時のフィドラーのスクリーンショット
リクエストがブラウザで直接行われたときのフィドラーのスクリーンショット
テストする認証コントローラーのスクリーンショット