MVCとWeb APIフィルタFilter

1976 ワード

MVCとWeb API Filter
ASP.NET MVCは、次のタイプのアクションフィルタをサポートします.
・承認フィルタ.これらのフィルタは、IAuthorizationFilterを実装し、認証または認証要求の実行などの操作方法を実行するかどうかのセキュリティ決定を行うために使用されます.AuthorizeAttributeクラスとRequireHttpsAttributeクラスは、認可フィルタのデモサンプルです.認証フィルタは、他のフィルタに関係なく実行されます.
・フィルタの操作.これらのフィルタは、IActionFilterおよびパッケージ操作方法の実行を実現するために使用されます.IActionFilterインタフェース宣言の2つの方法:OnActionExecutionとOnActionExecuted.OnActionExecutionは、操作方法の前に実行されます.OnActionExecutedは、操作方法の後に実行され、操作方法に追加のデータを提供したり、戻り値をチェックしたり、操作方法の実行をキャンセルしたりするなど、他の処理を実行できます.
・結果フィルタ.これらのフィルタは、IresultFilterおよびパッケージActionResultオブジェクトの実行を実現するために使用されます.IresultFilterは、OnResultExecutionとOnResultExecutedの2つのメソッドを宣言します.OnResultExecutionは、ActionResultオブジェクトを実行する前に実行されます.OnResultExecutedは、結果の後に実行され、HTTP応答を変更するなど、結果に対して他の処理を実行することができる.OutputCacheAttributeクラスは、結果フィルタのデモサンプルです.
・例外フィルタ.これらのフィルタはIExceptionFilterを実現するために使用され、ASP.NET MVC配管運転中に未処理の異常が発生した場合運転します.例外フィルタは、ログの記録やエラー・ページの表示などのタスクを実行するために使用できます.HandleErrorAttributeクラスは、例外フィルタのデモサンプルです.

異なるタイプのフィルタ


ASP.NET MVCフレームワークでは、4つの異なるタイプのフィルタがサポートされています.
認証フィルタ-実装されたIAuthorizationFilter属性.アクション・フィルタ-実装されたIActionFilterプロパティ.結果フィルタ-実装されたIResultFilterプロパティ.例外フィルタ-実装されたIExceptionFilterプロパティ. 
特に注意:
MVC中のフィルタはsystemである.web.Mvc.dll実装
グローバルフィルタの実装:App_Startディレクトリの下にあるFilterConfig.csファイルに
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
      //new Test_Mvc.Mvc_Filter()フィルタクラスのインスタンスオブジェクト
      filters.Add(new Test_Mvc.Mvc_Filter());//--グローバルフィルタの登録
}
 
Web Apiのフィルタシステム.web.http.dllのシステムweb.http.Filters実装では、コントローラに追加する際には、必ず空のAPIコントローラを選択することに注意してください.空のMVCコントローラを選択すると、フィルタはコントローラに対して無効になります.
グローバルフィルタの実装:Global.asaxファイル:
protected void Application_Start()
{
    //new Test_Http.Http_Filter()フィルタクラスのインスタンスオブジェクト
    GlobalConfiguration.Configuration.Filters.Add(newTest_Http.Http_Filter());//--グローバルフィルタの登録
}