国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > .NET > 正文

ASP.NET mvc4中的過(guò)濾器的使用

2024-07-10 12:49:16
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

mvc4中的過(guò)濾器

過(guò)濾器(Filter)把附加邏輯注入到MVC框架的請(qǐng)求處理。實(shí)現(xiàn)了交叉關(guān)注。

交叉關(guān)注:用于整個(gè)應(yīng)用程序,又不適合放在某個(gè)局部位置的功能。

過(guò)濾器是.NET的注解屬性(Attribute),它們對(duì)請(qǐng)求處理管道添加了額外的步驟。

注解屬性是派生于System.Attribute的特殊的.NET類(lèi)。

可以被附加到類(lèi)、方法、屬性、字段等代碼元素上。其目的是把附加信息嵌入到已編譯的代碼中,以便在運(yùn)行時(shí)讀回這些信息。

過(guò)濾器的基本類(lèi)型:

過(guò)濾器類(lèi)型

接口

默認(rèn)實(shí)現(xiàn)

描述

Authorization

IAuthorizationFilter

AuthorizationAttribute

最先運(yùn)行

Action

IActionFilter

ActionFilterAttribute

在動(dòng)作方法前后運(yùn)行

Result

IResultFilter

ActionResultAttribute

在動(dòng)作結(jié)果被執(zhí)行前后

Exception

IExceptionFilter

HandlerErrorAttribute

僅在過(guò)濾器、動(dòng)作發(fā)生異常時(shí)

授權(quán)過(guò)濾器:IAuthorizationFilter

namespace System.Web.Mvc{  // 摘要:定義授權(quán)篩選器所需的方法。  public interface IAuthorizationFilter{    // 摘要:在需要授權(quán)時(shí)調(diào)用。    // 參數(shù):filterContext:篩選器上下文。    void OnAuthorization(AuthorizationContext filterContext);  }}

注意:

直接實(shí)現(xiàn)接口其實(shí)是一件非常危險(xiǎn)的事;因此創(chuàng)建一個(gè)自定義AuthorizeAttribute子類(lèi),再實(shí)現(xiàn)授權(quán)代碼比較容易。

public class CustomAuthAttribute:AuthorizeAttribute{    /// <summary>    /// 是否對(duì)請(qǐng)求進(jìn)行授權(quán)訪問(wèn)的方式    /// </summary>    /// <param name="httpContext">對(duì)請(qǐng)求信息進(jìn)行訪問(wèn)的方法</param>    protected override bool AuthorizeCore(HttpContextBase httpContext){      return base.AuthorizeCore(httpContext);    }}

直接實(shí)現(xiàn)IAuthorizationFilter接口的主要原因是為了獲取對(duì)傳遞給OnAuthorization()的AuthorizationContext的訪問(wèn),通過(guò)它可以獲得更廣泛的信息(路由細(xì)節(jié)、當(dāng)前控制器和動(dòng)作方法信息)。使用接口的方式不僅有安全風(fēng)險(xiǎn)且讓授權(quán)注解屬性中建立的邏輯與控制器緊密的耦合在一起,破壞關(guān)注分離,不便于維護(hù)。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 涟源市| 新密市| 惠安县| 宁津县| 古浪县| 泰兴市| 什邡市| 锦州市| 富民县| 府谷县| 奇台县| 兰州市| 神池县| 旅游| 赫章县| 沅陵县| 大竹县| 濮阳市| 大城县| 兴业县| 长治县| 盐城市| 正安县| 六枝特区| 福安市| 西畴县| 顺义区| 万全县| 岐山县| 兰坪| 绿春县| 迭部县| 万源市| 晋城| 阳朔县| 海安县| 金乡县| 工布江达县| 崇文区| 独山县| 武城县|