談談ASP.NET Core過濾器和中間件的區別

什么是中間件

中間件Middleware是所有請求都會執行的,適合用在權限校驗,一些公用字段處理,例如分頁信息獲取.asp.net core 提供了IApplicationBuilder接口來讓把中間件注冊到asp.net的管道請求當中去,中間件是一個典型的AOP應用。下面是一個微軟官方的一個中間件管道請求圖:

2c62ab801aa948f9de2119f8690da0ab.png
image

可以看到,每一個中間件都都可以在請求之前和之后進行操作。請求處理完成之后傳遞給下一個請求。

什么是Filter

ActionFilter?是需要在Controller的具體方法[action]上加上相應的自定義Filter才會執行,也就是說針對一些特定要求,比如數據緩存,post請求時的數據校驗,可以寫一些通用的ActionFilter,在需要有數據緩存或者校驗的action上加上特性就可以做到針對特定請求的一些個性化處理.Filter總共有五種,Authorization Filter,Resource Filter,Exception Filter,Action Filter,Result Filter

工作流程

客戶端程序發起請求->中間件Middleware-> ActionFilter->Controller[Action]

使用場景總結

Filter使用場景

處理業務相關的內容,如輸出結果的格式化,ViewModel數據驗證

MiddleWare使用場景

和業務耦合不大的情況下,如身份驗證,Session存儲,日志記錄等

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/280620.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/280620.shtml
英文地址,請注明出處:http://en.pswp.cn/news/280620.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

11 個 Nginx 參數性能優化工作

工作上,需要配置 Nginx,要投入生產使用,做了一點優化工作,加上以前也經常折騰 Nginx,故記下一些優化工作。 優化 Nginx 進程數量 配置參數如下: worker_processes 1; # 指定 Nginx 要開啟的進程數&#xff…

如何在Windows 8中將舊控制面板添加到Metro Start屏幕

By default there is no way to easily access the old Control Panel in Windows 8, in order to get to it you have to go through the new Metro Control Panel or switch to Explorer. Here’s how to create your own tile for it. 默認情況下,無法輕松訪問Wi…

vue子父組件間傳值

父組件傳值給子組件 props方式   父組件上1處聲明傳遞的鍵并賦值,子組件2處使用props接收一下這個鍵就可以使用了。在父組件改變這個值的話子組件跟著一起響應,子組件改變這個值的話父組件不改變。次為響應式,但是也僅限于父組件的值變化子…

Django07:模板語法/標簽/inclusion_tag/模版的繼承

模板語法傳值 列表:l[a,b,c] 集合:se{‘a’,yy,ss} 元組:t(111,222,333) render(request.index,html,locals()) 語法規律 {{}}:變量相關 {%%}:邏輯相關 {{func}} 會自動加括號執行,但不支持帶參數; 帶參數會不…

紅象云騰發布新一代PB級高速大數據平臺產品

ZD至頂網服務器頻道 03月23日 新聞消息:在3月19日舉辦的China Hadoop Summit(中國Hadoop技術峰會)上,中國Hadoop大數據廠商紅象云騰與OpenPOWER基金會共同發布紅象云騰的新一代大數據產品,幫助企業高速處理PB規模數據。 此次發布…

個人筆記 Vue.js, Framework7, and Cordova / PhoneGap Template with Babel, Webpack and Hot Reloading...

為什么80%的碼農都做不了架構師?>>> 模板創建項目 模板地址 更新package.json中的dependencies依賴到最新版本 當新建一個項目的時候,從其他項目的package.json里面copy一份dependencies過來。 但因為是新項目,我們想用各個依賴包…

dotnet-exec 0.12.0 released

dotnet-exec 0.12.0 releasedIntrodotnet-exec 是一個 C# 程序的小工具,可以用來運行一些簡單的 C# 程序而無需創建項目文件,讓 C# 像 python/nodejs 一樣簡單,而且可以自定義項目的入口方法,支持但不限于 Main 方法。Install/Upd…

美國用戶現在可以下載其所有Apple帳戶數據,這是操作方法

Starting today, Apple is allowing all US users to download a copy of every last bit of their data from the company. 從今天開始,Apple允許所有美國用戶從該公司下載其數據的最后一部分的副本。 This feature has been available for EU users since May, th…

java 的原碼、補碼、反碼小總結

先看一個代碼吧: int h; return (key null) ? 0 : (h key.hashCode()) ^ (h >>> 16); 這個應該很熟悉吧,是 java 里 HashMap 的計算 hash 值的方法.這里有一個運算符 "^",他其實就是使用補碼來運算的.好了,那么我們下面來說說這些…

Django08:模型層(ORM)--測試腳本/必知的13條/神器的雙下劃線查詢/多表操作

單表操作 django 自帶的sqlite3數據庫對日期格式不是很敏感,處理的時候容易出錯。 測試腳本 測試環境準備:去manage.py 中拷貝錢四行代碼,然后自己手寫兩行。 腳本無論在引用下面,還是單獨開設PY文件都可以。 import os impor…

“互聯網+”促傳統企業三大轉型

2015年是傳統行業互聯網化的元年。國家提出要制定“互聯網”行動計劃后,互聯網旅游、互聯網汽車、互聯網三農、互聯網物流、互聯網醫療等開始起步。同時,面對不確定的移動互聯網時代,互聯網某些技術和模式還在進化、演變之中,每一…

開發高性能ASP.NET應用

本文是“.NET Conf China 2022”上我的一個分享,這里更細化的分享出來。分享分為四個部分:制定指示設計應用正確測試性能優化高性能:不一定是架構出來的,但一定是優化出來的。制定指標-收集首先把項目中的熱路徑API和核心API找出來…

Ethereum-EIPs

What is an EIP? Ethereum Improvement Proposal 以太坊改進建議的文檔 這個文檔向Ethereum社區提供信息,為Ethereum、Ethereum的進程、環境描述一個新特征,該EIP應當為該特征提供一個基本的技術描述和原理原理。該EIP作者有責任在社區和不同意見的文檔…

Django08-1:模型層(ORM)--聚合查詢/分組查詢/F與Q查詢/開啟事務/常用字段及參數/自定義字段/數據庫查詢優化

聚合查詢 單獨使用時,用aggregate 1.只要是跟數據庫相關的模塊 基本都在django.db.models里面 如果沒有應該在django.db里面 2. 聚合查詢通常配合分組使用 from django.db.models import Avg, Sum, Max, Min, Count# 1.所有書的平均價格 resmodels.Book.objects.…

記事本狀態欄不會自動_如何在記事本中同時啟用狀態欄和自動換行

記事本狀態欄不會自動The status bar in Windows’ Notepad displays the current line number and column number of the cursor location. However, if you find that the Status Bar option on the View menu is grayed out, it may be because you have Word Wrap enabled…

洛谷P2587 [ZJOI2008] 泡泡堂

題目傳送門 分析:一道策略游戲題,要求最大期望得分和最小期望得分。首先分析最大,很顯然是可以用一種類似于田忌賽馬的思維來做,將兩隊的實力按照從大到小(其實從小到大也可以)排序,然后就按照順…

極端高溫導致澳大利亞斷網

西澳大利亞首府珀斯因惡劣天氣出現了網絡連接問題, 網絡故障不是由于暴風雨或閃電引起的,而是極端高溫。本周一是珀斯有記錄以來第六熱的天,當天最高溫度達到了44.4℃。因為創紀錄的高溫,澳大利亞寬帶 服務商iiNet在當…

推薦一款采用 .NET 編寫的 反編譯到源碼工具 Reko

今天給大家介紹的是一款名叫Reko的開源反編譯工具,該工具采用C#開發,廣大研究人員可利用Reko來對機器碼進行反編譯處理。我們知道.NET 7 有了NativeAOT 的支持,采用NativeAOT 編譯的.NET程序 無法通過ILSpy 之類的傳統工具得到源碼&#xff0…

并行傳輸數據和串行傳輸數據_為什么串行數據傳輸比并行數據傳輸快?

并行傳輸數據和串行傳輸數據SATA hard drive connections are faster than older PATA hard drive connections and the same can be said for external cabling standards, but this is counter-intuitive: why wouldn’t the parallel transmission be faster? SATA硬盤驅動…

得到某月的天數

Calendar timeCalendar.getInstance(); time.clear(); time.set(Calendar.YEAR,2018);//year年 time.set(Calendar.MONTH,1);//Calendar對象默認一月為0,month月 int daytime.getActualMaximum(Calendar.DAY_OF_MONTH);//本月份的天數 System.out.pri…