Web API コントローラーにカスタム承認属性を実装しようとしていますが、予期しない動作に遭遇しました。
<Authorize(Users:="myUser")>
Public Function GetTodoItems() As IQueryable(Of TodoItem)
上記のコードは非常にうまく機能します。 「myUser」がアイテムを取得できるようにし、ボット以外の誰もアクセスを許可しません。ただし、カスタム承認で同じアプローチを試みると、チェック全体がスキップされ、すべてのユーザーがリソースにアクセスできます。AuthorizeCore
派生クラスのメソッドもOnAuthorization
オーバーライドされたメソッドも呼び出されません。
<MyAuth(Users:="myUser")>
Public Function GetTodoItems() As IQueryable(Of TodoItem)
派生クラスは から継承されSystem.Web.Mvc.AuthorizeAttribute
、プロジェクトは IIS に展開され、Windows 認証と偽装が有効になり、匿名認証が無効になります。
同じカスタム認証を MVC コントローラーに追加すると、機能します。しかし、API コントローラーでは何もありません。属性も機能しない場合は、Authorize
より理にかなっています。何か不足していますか?これは予想される動作ですか、それともベータ版のバグですか?