IActionFilter
と の間に違いがあるかどうか疑問に思ってい IAuthorizationFilter
ますか?
IActionFilter
私はおそらくそれの下で同じロジックを実装できると思いIAuthorizationFilter
ます...それは本当ですか?
ありがとう!
IActionFilter
と の間に違いがあるかどうか疑問に思ってい IAuthorizationFilter
ますか?
IActionFilter
私はおそらくそれの下で同じロジックを実装できると思いIAuthorizationFilter
ます...それは本当ですか?
ありがとう!
質問によると、はい、同じロジックを と の両方に実装できIActionFilter
ますIAuthorizationFilter
。ただし、実行順序のみが異なります。
ASP.NET MVC フレームワークは、次の 4 種類のフィルターをサポートしています。
Authorization – Implements IAuthorizationFilter Attribute.
Action – Implements IActionFilter Attribute.
Result – Implements IResultFilter Attribute.
Exception – Implements IExceptionFilter Attribute.
注: フィルターは上記の順序で実行されます。
承認フィルターは常にアクション フィルターの前に実行され、例外フィルターは常に他のすべての種類の の後に実行されfilter
ます。
Authorization
フィルターは、コントローラー アクションの実装authentication
と実行に使用されます。authorization
たとえば、Authorize フィルターは Authorization フィルターの一例です。
アクション フィルターには、コントローラー アクションの実行前後に実行されるロジックが含まれます。たとえば、アクション フィルターを使用して、コントローラー アクションが返すビュー データを変更できます。
Result
フィルターには、ビューの結果が実行される前後に実行されるロジックが含まれます。たとえば、ビューがブラウザーにレンダリングされる直前に、ビューの結果を変更したい場合があります。
Exception
フィルターは、最後に実行するフィルターのタイプです。例外フィルターを使用して、コントローラー アクションまたはコントローラー アクションの結果によって発生したエラーを処理できます。例外フィルターを使用してエラーをログに記録することもできます。
異なるタイプのフィルターはそれぞれ特定の順序で実行されます。同じタイプのフィルターが実行される順序を制御したい場合は、フィルターの Order プロパティを設定できます。
注: すべてのアクション フィルターの基本クラスはSystem.Web.Mvc.FilterAttribute
class です。
承認フィルターは、アクション パイプラインの非常に早い段階で実行されます。たとえば、条件が満たされないときにアクション パイプラインから抜け出すのに適しています。(これを使用する MVC フレームワーク属性の例は [Authorize]、[RequireHttps] です)
アクション フィルターは承認フィルターの後に実行され、アクションの前後処理に参加できます。