0

現在、Ninject2 を使用して、MVC アプリのさまざまなサービスとリポジトリをバインドしています。その部分はうまく機能しているようです。ここで、独自のクラスを IAuthorizationFilter と属性セットを持つすべてのアクションにもバインドしたいと思います。

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

これもバインディング モジュールに追加しました。

Bind(Of IAuthorizationFilter).To(Of MyAuthFilter)

前回確認したとき、Ninject Mvc ビットは 4 種類のアクション フィルターのバインドもサポートしていました。

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

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

4

1 に答える 1

1

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

于 2009-09-04T13:32:58.293 に答える