亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

asp.net MVC過濾器的用法(轉)

2019-11-17 01:56:13
字體:
來源:轉載
供稿:網友
asp.net MVC過濾器的用法(轉)

轉自:http://www.studyofnet.com/news/257.html

APS.NET MVC中的每一個請求,都會分配給相應的控制器和對應的行為方法去處理,而在這些處理的前前后后如果想再加一些額外的邏輯處理。這時候就用到了過濾器。

在Asp.netMvc中當你有以下及類似以下需求時你可以使用Filter功能

  1. 判斷登錄與否或用戶權限
  2. 決策輸出緩存
  3. 防盜鏈
  4. 防蜘蛛
  5. 本地化與國際化設置
  6. 實現動態Action

MVC支持的過濾器類型有四種,分別是:Authorization(授權),Action(行為),Result(結果)和Exception(異常)。

如下表

過濾器類型

接口

描述

Authorization

IAuthorizationFilter

此類型(或過濾器)用于限制進入控制器或控制器的某個行為方法

Exception

IExceptionFilter

用于指定一個行為,這個被指定的行為處理某個行為方法或某個控制器里面拋出的異常

Action

IActionFilter

用于進入行為之前或之后的處理

Result

IResultFilter

用于返回結果的之前或之后的處理

但是默認實現它們的過濾器只有三種,分別是Authorize(授權),ActionFilter,HandleError(錯誤處理);各種信息如下表所示

過濾器

類名

實現接口

描述

ActionFilter

AuthorizeAttribute

IAuthorizationFilter

此類型(或過濾器)用于限制進入控制器或控制器的某個行為方法

HandleError

HandleErrorAttribute

IExceptionFilter

用于指定一個行為,這個被指定的行為處理某個行為方法或某個控制器里面拋出的異常

自定義

ActionFilterAttribute

IActionFilter和IResultFilter

用于進入行為之前或之后的處理或返回結果的之前或之后的處理

一、應用于Action的Filter

創建 Action filter 必須實現 IActionFilter 接口,該接口定義了兩個方法

方法名調用時機可進行的操作
OnActionExecutingAction方法執行之前可以給 filterContext.Result 賦值,以阻止 Action 的執行可以通過 filterContext.ActionParameters 查看或修改 Action 的參數
OnActionExecutedAction方法執行之后可以通過 filterContext.Exception 獲取 Action 執行時拋出的異常,并能把它標記為“已處理”:filterContext.ExceptionHandled = true??梢圆榭赐ㄟ^filterContext.Result查看 Action 的執行結果,但是不能修改。

Action過濾器是通過繼承ActionFilterAttribute類來實現的一個Attribute類。ActionFilterAttribute 是一個抽象類,提供了兩個virtual的方法給我們重寫,OnActionExecutingOnActionExecuted。

ASP.NET MVC 框架會在調用Action方法之前調用你Action過濾器中的OnActionExecuting方法,在之后調用Action過濾器中的OnActionExecuted方法。當然在創建Action過濾器的時候你不需兩個方法都實現。

下面的示例是在調用Action方法之前和之后的日志跟蹤:

C# 代碼 復制
public class LoggingFilterAttribute : ActionFilterAttribute
 {     public override void OnActionExecuting(FilterExecutingContext         filterContext)     {         filterContext.HttpContext.Trace.Write("Starting: " +          filterContext.ActionMethod.Name);     }      public override void OnActionExecuted(FilterExecutedContext         filterContext)     {         if (filterContext.Exception != null)         {             filterContext.HttpContext.Trace.Write("Exception thrown");         }     } }

部分參數說明

Action Filter Context

OnActionExecuting方法有一個類型為FilterExecutingContext的參數,而OnActionExecuted方法有一個相應的類型為FilterExcutedContext的參數。兩個Context類都是繼承自FilterContext類,而FilterContext類繼承自ControllerContext類并包含一個ActionMethod屬性。你可以使用ActionMethod屬性來堅定這個Action過濾器是應用到哪個Action方法上的。

FilterExecutingContext類包含一個 Cancel 的屬性,允許你取消當前的Action。

FilterExcutedContext類包含一個Exception屬性和一個ExceptionHandled屬性。如果Exception屬性為null,則沒有異常在action stack中,表明Action方法運行并沒有發生錯誤。如果Exception屬性不為null,則過濾器知道該怎么處理,過濾器處理完異常后會發出已經處理完的信號,然后將ExceptionHandled屬性設為true。就算ExceptionHandled屬性為true,堆棧中添加到其他Action方法的OnActionExcetued方法將會照常被調用,這種場景就如就算一個異常被處理了,日志記錄filter一樣照常執行。

使用方法

你可以將過濾器應用到任何一個你喜歡的Action方法上。下面的示例演示一個控制器中包含的用Action過濾器Attribute標記的Action方法。

C# 代碼 復制
public class HomeController : Controller
 {     [LoggingFilter]     public void Index()     {         RenderView("Index");     }      [LoggingFilter]     public void About()     {         RenderView("About");     }      [LoggingFilter]     pub
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品电影久久久| 亚洲欧美另类人妖| 亚洲人成自拍网站| 国产在线视频不卡| 91精品国产91| 欧美亚洲国产视频| 欧美疯狂xxxx大交乱88av| 亚洲成人黄色在线观看| xvideos国产精品| 色偷偷88888欧美精品久久久| 久久久亚洲欧洲日产国码aⅴ| 亚洲精品永久免费| 日韩电影第一页| 亚洲第一偷拍网| 欧美成人免费在线视频| 国产suv精品一区二区| 高跟丝袜欧美一区| 91精品啪在线观看麻豆免费| 日韩免费av在线| 日韩欧美亚洲范冰冰与中字| 欧美韩日一区二区| 欧美日本高清一区| 国产精品久久久久久久久久东京| 久久不射电影网| 在线成人免费网站| 亚洲欧美另类自拍| 亚洲激情在线观看| 欧美乱大交xxxxx| 国产精品自拍网| 日韩大片免费观看视频播放| 亚洲久久久久久久久久| 日韩欧美综合在线视频| 国产精品电影观看| 性欧美xxxx视频在线观看| 国产精品爽爽ⅴa在线观看| 九九热精品视频| 亚洲精品国产精品自产a区红杏吧| 精品福利视频导航| 国外成人免费在线播放| 26uuu国产精品视频| 国产91亚洲精品| 亚洲精品国产免费| 欧美另类69精品久久久久9999| 欧美日韩国产精品一区| 欧美激情a在线| 97精品视频在线播放| 精品视频www| 久久久久中文字幕2018| 国产精品福利在线观看网址| 国产精品麻豆va在线播放| 成人欧美在线观看| 日韩欧美福利视频| 亚洲欧美国产日韩天堂区| 国产精品青草久久久久福利99| 国产精品久久久久91| 久久精品视频亚洲| 国产网站欧美日韩免费精品在线观看| 欧美重口另类videos人妖| 91久久精品国产91久久| 亚洲国内精品视频| 日韩视频免费观看| 中文字幕国产亚洲| 中文字幕一精品亚洲无线一区| 亚洲第一页自拍| 不卡av日日日| 精品国产乱码久久久久久虫虫漫画| 亚洲欧美在线一区二区| 国产福利精品av综合导导航| 91香蕉嫩草神马影院在线观看| 亚洲一区二区三区香蕉| 久久精品免费电影| 九九热r在线视频精品| 日韩美女视频免费在线观看| 国产亚洲xxx| 国产精品嫩草影院一区二区| 亚洲成色999久久网站| 久久免费国产视频| 狠狠躁18三区二区一区| 国产成人精彩在线视频九色| www.日韩系列| 韩国国内大量揄拍精品视频| 国产成人avxxxxx在线看| 亚洲v日韩v综合v精品v| 精品国内亚洲在观看18黄| 高清一区二区三区四区五区| 久久久久久久久久亚洲| 欧美性受xxxx白人性爽| 国产精品久久久一区| 国产综合久久久久| 曰本色欧美视频在线| 久久久女女女女999久久| 欧美午夜女人视频在线| 日本最新高清不卡中文字幕| 亚洲美女视频网| 中文字幕久久亚洲| 色婷婷久久一区二区| 色综合久久久久久中文网| 日韩在线观看免费高清完整版| 欧美成aaa人片在线观看蜜臀| 国产精品一区二区久久久久| 国产亚洲综合久久| 国产欧美日韩精品在线观看| 国产一区二区三区网站| 欧美成人第一页| 欧美亚洲日本网站| 国产免费观看久久黄| 国产91精品视频在线观看| 国产91在线播放九色快色| 日韩成人在线观看| 在线视频日韩精品| 久久影院资源网| 欧美日韩xxx| 亚洲视频国产视频| 久久久精品一区二区| 色999日韩欧美国产| 成人做爰www免费看视频网站| 91精品国产乱码久久久久久蜜臀| 国产精品视频xxxx| 久久久久久一区二区三区| 福利一区福利二区微拍刺激| 亚洲人永久免费| 亚洲美女精品久久| 欧美成人免费视频| 91久热免费在线视频| 欧美激情精品久久久久久变态| 国产精品久久久久久久av电影| 2021国产精品视频| 国产九九精品视频| 91久久久久久久一区二区| 国产欧美日韩专区发布| 国产在线高清精品| 国产精品久久久久久中文字| 国产成人精品亚洲精品| 日韩av毛片网| 欧美成人免费va影院高清| 精品在线观看国产| 中文字幕亚洲无线码a| 欧美成人手机在线| 欧美日韩成人在线播放| 国产精品电影观看| 亲爱的老师9免费观看全集电视剧| 亚洲天堂2020| 日韩av在线网| 日韩中文字幕欧美| 亚洲成人精品av| 日韩av日韩在线观看| 午夜精品一区二区三区在线视| 欧美黑人巨大精品一区二区| 91av成人在线| 国产精品福利在线观看网址| 国语自产精品视频在免费| 97视频在线观看网址| 国产精品三级久久久久久电影| 中文字幕免费精品一区| 欧美精品在线免费观看| 亚洲人成在线免费观看| 国产精品久久久av| 黄网动漫久久久| 午夜精品久久久久久久99热浪潮| 国产一区二区三区在线| 亚洲人成网站免费播放| 97在线免费视频| 中文欧美在线视频| 日韩中文在线观看|