3

私の ASP.NET MVC アプリケーションは、フォーム認証を使用してい[System.Web.Mvc.Authorize]ます。属性を使用[System.Web.Http.Authorize]して Web API コントローラーを保護したいと思います。MVC コントローラーから属性を呼び出しているためHttpClient、次の投稿のようなカスタム委任ハンドラーを実装しました。

メンバーシップ プロバイダーを使用した ASP.NET MVC 4 Web API 認証

デバッグすると、プリンシパルが設定され、ユーザーに適切な役割があることがわかりますが、それでもログイン ページにリダイレクトされますか?

したがって、基本的に、ログインしてブラウザーで WebAPI アクションにアクセスすると、すべてが機能します (ビューから AJAX を使用する場合と同様) がHttpClient、コントローラー内で使用する場合 (これは、異なるコンテキストを持つ新しい要求であることがわかっています) 基本認証と常にリダイレクトされるプリンシパルを設定します。

非常に多くの解決策/回避策を試しましたが、常にログイン ページにリダイレクトされます。誰もがアイデアを持っています。

4

1 に答える 1

0

説明は次のとおりです。

System-web-http-authorize x System-web-mvc-authorize

もう 1 つの興味深い点は、カスタム承認を使用することです。私はそれをしました、そしてそれはうまくいきました。次の例:

カスタマイズされた承認 Mvc 4

幸運を

于 2014-05-30T14:53:51.410 に答える