0

私は現在、Ninject2を使用してMVCアプリケーション内のさまざまなサービスとリポジトリをバインドしています。その部分は正常に動作しているようです。今私は自分のクラスをIAuthorizationFilterと属性セットを持つすべてのアクションにバインドしたいと思います。IAuthorizationFilter + Ninject2

AuthorizationFilterを継承し、IAuthorizationFilterを実装するクラスを作成しました。

私はまた私の結合モジュールにこれを追加しました:

Bind(Of IAuthorizationFilter).To(Of MyAuthFilter) 

私がチェックした最後の時間を、Ninject、MVCビットもアクションフィルタの4種類を結合するためのサポートを持っていました。

他にもこれを行っていますか?サイトを実行するたびに、Authorizeというアクションを呼び出すURLがログインページにリダイレクトされ、自分のフィルタークラスでブレークポイントに到達することはありません。

カスタム属性を使用していた場合は動作しますが、すべてのAuthorize属性を変更すると、もちろんNinjectを使用する目的が無効になります。

+0

もちろん、自分のクラスをAuthorizeAttributeと呼ぶことで、私は不正行為をすることができます。それは少し汚れているように感じます。 – claco

答えて

1

NinjectでMVCフィルタを登録するだけでは不十分です。 MVCにそれらをいつ実行するかを伝える必要があります。そのため、依然としてカスタム属性が必要です。 Ninject.Web.Mvcの注入サポートは依存関係をフィルタに注入できるようにすることです。

+0

意味があります。ソースをもう少し見た後、IAuthenticationFilterのIListなので、インターフェイスをフィルタにロードするのではなく、ロードされたフィルタの[挿入]可能なプロパティに注入することが目標です – claco

関連する問題