これは .NET 4.5 C# MVC + WebAPI 4 プロジェクトです。ここで説明されているように、WebApiDoodle 2.0.1 BasicAuthenticationHandler を使用して、MVC + WebAPI をサイド バイ サイド セキュリティで使用しています。
アプリケーションの開始で、メッセージ ハンドラーを追加します。
globalConfig.MessageHandlers.Add(new {MyClass Derived from BasicAuthenticationHandler}());
MVC コントローラーは正常に動作します (から派生したクラス System.Web.Mvc.Controller
)。
ただし、WebApi コントローラー (から派生System.Web.Http.ApiController
) は属性を無視しSystem.Web.Http.AllowAnonymous
ます。彼らは基本的にすべてを認証/承認したいと考えています。
globalConfig からカスタム メッセージ ハンドラーを削除すると、WebAPI は期待どおりに動作し、AllowAnonymous 属性により、匿名の要求を処理できます ([Authorize] を持つアクションは拒否されます)。
何が起こっているのでしょうか?ありがとう。