溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Understanding Action Filters-理解Action篩選器

發(fā)布時(shí)間:2020-08-01 12:11:39 來(lái)源:網(wǎng)絡(luò) 閱讀:602 作者:追逐779 欄目:編程語(yǔ)言

原文鏈接:Understanding Action Filters

一、定義

Action篩選器一個(gè)屬性,可以應(yīng)用控制器Action方法 — — 整個(gè)控制器 — — 修改其中執(zhí)行Action方式。

  • 1.OutputCache – Action篩選器緩存 控制器的Action輸出 指定時(shí)間。

  • 2.HandleError – Action篩選器處理引發(fā)控制器Action執(zhí)行時(shí)錯(cuò)誤。

  • 3.Authorize – 操作篩選器使可以限制對(duì)特定用戶角色訪問(wèn)。

可以創(chuàng)建自己自定義操作篩選器。例如,可能創(chuàng)建一個(gè)自定義操作篩選器,執(zhí)行自定義身份驗(yàn)證系統(tǒng)。或者,可能創(chuàng)建操作篩選器來(lái)修改視圖數(shù)據(jù)返回一個(gè)控制器動(dòng)作

二、默認(rèn)分類

ASP.NET MVC 框架支持四種不同類型篩選器

  1. Authorization filters – Implements the IAuthorizationFilter attribute.

  2. Action filters – Implements the IActionFilter attribute.

  3. Result filters – Implements the IResultFilter attribute.

  4. Exception filters – Implements the IExceptionFilter attribute.

執(zhí)行順序:授權(quán)篩選器優(yōu)先級(jí)最高;異常篩選器優(yōu)先級(jí)最低。

  1. Authorization篩選器用來(lái)實(shí)現(xiàn)身份驗(yàn)證和授權(quán)控制器操作。例如,Authorize篩選器是Authorization篩選器示例。

  2. Action篩選器包含的邏輯,執(zhí)行之前和之后的控制器操作執(zhí)行。您可以使用操作篩選器,例如,修改控制器操作返回的視圖數(shù)據(jù)。

  3. Result篩選器包含的邏輯,執(zhí)行之前和之后執(zhí)行視圖結(jié)果。例如,您可能想要修改視圖結(jié)果在視圖呈現(xiàn)到瀏覽器之前。

  4. Exception篩選器是最后一種類型的篩選器來(lái)運(yùn)行。異常篩選器可用于處理由您的控制器操作或控制器操作結(jié)果引發(fā)的錯(cuò)誤。您還可以使用異常篩選器記錄錯(cuò)誤。

    不同類型篩選器特定順序執(zhí)行。如果控制其中執(zhí)行相同類型篩選器順序,然后可以設(shè)置篩選器的 Order 屬性。

    所有操作篩選器基類 System.Web.Mvc.FilterAttribute 。如果執(zhí)行特定類型篩選器然后需要創(chuàng)建一個(gè),篩選器基類繼承實(shí)現(xiàn)一個(gè)更多 IAuthorizationFilter、 IActionFilter、 IResultFilter, ExceptionFilter 接口。

三、ActionFilterAttribute基類

        為了更容易執(zhí)行自定義操作篩選器,ASP.NET MVC 框架提供 ActionFilterAttribute 基類。實(shí)現(xiàn) IActionFilter IResultFilter 接口,篩選器繼承。

  從技術(shù)上講, ActionFilterAttribute 繼承操作篩選器結(jié)果篩選器。然而,整體來(lái)說(shuō),操作篩選器用于任何類型 ASP.NET MVC 框架篩選器

  ActionFilterAttribute基類有四個(gè)方法可以被重寫:

  • OnActionExecuting – This method is called before a controller action is executed.

  • OnActionExecuted – This method is called after a controller action is executed.

  • OnResultExecuting – This method is called before a controller action result is executed.

  • OnResultExecuted – This method is called after a controller action result is executed.


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI