實例產品基於asp.net mvc 5.0框架,源碼下載地址:http://www.jinhusns.com/Products/Download 在Asp.net Mvc中當你有以下及類似以下需求時你可以使用Filter功能 判斷登錄與否或用戶許可權 決策輸出緩存 防盜鏈 防蜘蛛 本地化與國際化設置 ...
實例產品基於asp.net mvc 5.0框架,源碼下載地址:http://www.jinhusns.com/Products/Download
在Asp.net Mvc中當你有以下及類似以下需求時你可以使用Filter功能
- 判斷登錄與否或用戶許可權
- 決策輸出緩存
- 防盜鏈
- 防蜘蛛
- 本地化與國際化設置
- 實現動態Action
Asp.Net MVC提供了以下幾種預設的Filter:
需要註意一點,Asp.Net MVC提供的ActionFilterAtribute預設實現了IActionFilter和IResultFilter。而ActionFiterAttribute是一個Abstract的類型,所以不能直接使用,因為它不能實例化,所以我們想使用它必須繼承一下它然後才能使用。
Filter繼承於ActionFiterAtribute抽象類並可以覆寫void OnActionExecuting(ActionExecutingContext)和void OnActionExecuted(ActionExecutedContext)以及void OnResultExecuting(ResultExecutingContext)和voidOnResultExecuted(ResultExecutedContext)。
它們的執行先後順序如下:
OnActionExecuting是Action執行前的操作
OnActionExecuted則是Action執行後的操作
OnResultExecuting是解析ActionResult前執行
OnResultExecuted是解析ActionResult後執行
在這裡只講一個常用的,在Action執行前的操作,用於驗證用戶是否登錄或許可權是否通過
下麵是過濾器的重寫方法:Message是參數(可以不需要)
然後是Action的使用方法,在Action上面加過濾器的標示,並且可以加參數,如下所示
然後通過瀏覽器訪問上面的Action便可以看到下麵的執行順序: