真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

asp.netcore實(shí)例教程之設(shè)置中間件的方法-創(chuàng)新互聯(lián)

asp.net core實(shí)例教程之設(shè)置中間件的方法?這個(gè)問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個(gè)問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!

成都創(chuàng)新互聯(lián)公司主營瑞金網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶App定制開發(fā),瑞金h5重慶小程序開發(fā)公司搭建,瑞金網(wǎng)站營銷推廣歡迎瑞金等地區(qū)企業(yè)咨詢

Asp.Net Core-中間件

在這一章,我們將了解如何設(shè)置中間件。中間件技術(shù)在 ASP.NET Core中控制我們的應(yīng)用程序如何響應(yīng) HTTP 請求。它還可以控制應(yīng)用程序的異常錯(cuò)誤,這是一個(gè)在如何進(jìn)行身份驗(yàn)證和授權(quán)用戶執(zhí)行特定的操作的關(guān)鍵。

  • 中間件是組裝成應(yīng)用的管道來處理請求和響應(yīng)的軟件組件。

  • 每個(gè)組件可以選擇是否要在管道中將請求傳遞到下一個(gè)組件,并可以在管道中執(zhí)行某些操作之前和之后的任務(wù)。

  • Request委托用于構(gòu)建請求管道。Request委托用來處理每個(gè)HTTP請求。

  • 每件中間件在 ASP.NET Core都是一個(gè)對象,并且每一塊有非常具體、 專注和有限的作用。

  • 最終,我們需要很多的中間件為應(yīng)用程序提供適當(dāng)?shù)男袨椤?/p>

現(xiàn)在讓我們假設(shè)我們想將每個(gè)對我們應(yīng)用程序的請求都記錄日志。

  • 在這種情況下,我們安裝到應(yīng)用程序中的第一塊中間件是一個(gè)日志組件。

  • 這個(gè)日志程序可以看到一切傳入的請求,然后該中間件只是記錄一些信息,然后傳遞這個(gè)請求下一個(gè)塊中間件。

asp.net core實(shí)例教程之設(shè)置中間件的方法

  • 中間件是以一系列的組件出現(xiàn)在這個(gè)處理管道中。

  • 我們安裝到應(yīng)用程序的下一個(gè)中間件是一個(gè)授權(quán)組件。

  • 一個(gè)組件可能是尋找特定cookie或訪問HTTP標(biāo)頭中的令牌。

  • 如果授權(quán)組件發(fā)現(xiàn)一個(gè)令牌,它允許請求繼續(xù)。

  • 如果不是,授權(quán)組件本身可能會響應(yīng)請求的HTTP錯(cuò)誤代碼或?qū)⒂脩糁囟ㄏ虻降卿涰撁妗?/p>

  • 否則,授權(quán)組件將請求傳遞給下一個(gè)路由器的中間件。

  • 一個(gè)路由器查看URL,并確定下一步的行動。

  • 路由器是在做一些回應(yīng),如果路由器沒有找到任何回應(yīng),路由器本身可能會返回404 Not Found錯(cuò)誤。


案例

現(xiàn)在讓我們通過一個(gè)簡單的例子來理解更多關(guān)于中間件的知識。我們通過使用我們的啟動類的Configure方法來配置中間件組件。

using Microsoft.AspNet.Builder; 
using Microsoft.AspNet.Hosting; 
using Microsoft.AspNet.Http; 
using Microsoft.Extensions.DependencyInjection; 
using Microsoft.Extensions.Configuration;  
namespace FirstAppDemo { 
   public class Startup { 
      public Startup() { 
         var builder = new ConfigurationBuilder() 
            .AddJsonFile("AppSettings.json"); 
         Configuration = builder.Build(); 
      }  
      public IConfiguration Configuration { get; set; }  
        
      // This method gets called by the runtime. 
      // Use this method to add services to the container. 
      // For more information on how to configure your application, 
      // visit http://go.microsoft.com/fwlink/?LinkID=398940 
      public void ConfigureServices(IServiceCollection services) { 
      }  
       
      // This method gets called by the runtime.  
      // Use this method to configure the HTTP request pipeline. 
      public void Configure(IApplicationBuilder app) { 
         app.UseIISPlatformHandler();  
          
         app.Run(async (context) => { 
            var msg = Configuration["message"]; 
            await context.Response.WriteAsync(msg); 
         });  
      }  
      // Entry point for the application. 
      public static void Main(string[] args) => WebApplication.Run(args); 
   } 
}
Configure()方法內(nèi),我們將調(diào)用IApplicationBuilder接口的擴(kuò)展方法來添加中間件。

默認(rèn)情況下在一個(gè)新的空項(xiàng)目有兩塊中間件-

  • IISPlatformHandler

  • Middleware registered with app.Run


IISPlatformHandler

IISPlatformHandler允許我們使用Windows身份驗(yàn)證。它將著眼于每個(gè)傳入請求,看看是否有任何Windows身份信息相關(guān)的請求,然后調(diào)用下一個(gè)塊中間件。

Middleware registered with app.Run

在這種情況下一個(gè)中間件在app.Run中注冊的中間件。Run方法允許我們傳入另一種方法,我們可以使用它來處理每一個(gè)響應(yīng)。Run方法不是你經(jīng)常會看到的,我們可以稱它為一個(gè)中間件的終端。

你注冊運(yùn)行的中間件將永遠(yuǎn)不會有機(jī)會調(diào)用另一個(gè)中間件,它唯一能做的就是接收請求,便要產(chǎn)生某種反應(yīng)。

你也訪問到一個(gè)響應(yīng)對象,你可以在響應(yīng)對象中添加一些字符串。

如果你想在app.Run之后注冊另一個(gè)中間件,這段中間件將永遠(yuǎn)不會被調(diào)用,因?yàn)镽un方法是一個(gè)中間件的終端。它不會調(diào)用下一個(gè)塊中間件。

如何添加一個(gè)中間件

讓我們著手進(jìn)行以下步驟來添加另一個(gè)中間件 ?

步驟1?右鍵單擊項(xiàng)目并選擇Manage NuGet Packages。

步驟2?搜索 Microsoft.aspnet.diagnostics,此特定的軟件包包含許多不同種的中間件,我們可以使用。

asp.net core實(shí)例教程之設(shè)置中間件的方法

步驟3?如果該包沒有安裝在您的項(xiàng)目中,那選擇安裝這個(gè)包。

步驟4?現(xiàn)在讓我們在Configure()方法調(diào)用app.UseWelcomePage中間件。

// This method gets called by the runtime.  
// Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app) { 
   app.UseIISPlatformHandler(); 
   app.UseWelcomePage();  
    
   app.Run(async (context) => { 
      var msg = Configuration["message"]; 
      await context.Response.WriteAsync(msg); 
   });

步驟 5 ? 運(yùn)行您的應(yīng)用程序,您將看到以下的歡迎屏幕。

asp.net core實(shí)例教程之設(shè)置中間件的方法

這個(gè)歡迎屏幕可能不是那么有用。

步驟6?讓我們試試別的東西,可能是更有用的,而不是使用歡迎頁面,我們將使用RuntimeInfoPage。

 1 // This method gets called by the runtime.  
 2 // Use this method to configure the HTTP request pipeline.  3 public void Configure(IApplicationBuilder app) { 
 4    app.UseIISPlatformHandler(); 
 5    app.UseRuntimeInfoPage();  
 6      7    app.Run(async (context) => { 
 8       var msg = Configuration["message"]; 
 9       await context.Response.WriteAsync(msg); 
10    });  
11 }

第 7 步 ? 保存您的 Startup.cs 頁面并刷新您的瀏覽器,你會看到下面的頁面。

asp.net core實(shí)例教程之設(shè)置中間件的方法

這個(gè) RuntimeInfoPage 是中間件,將只響應(yīng)一個(gè)特定的 URL 的請求。如果傳入的請求與該 URL 不匹配,這個(gè)中間件只是讓請求傳遞到下一件中間件。該請求將通過 IISPlatformHandler 中間件,然后轉(zhuǎn)到 UseRuntimeInfoPage 中間件。它不會創(chuàng)建響應(yīng),所以它會轉(zhuǎn)到我們的應(yīng)用程序。運(yùn)行并顯示該字符串。

步驟8?我們在URL結(jié)尾添加“ runtimeinfo”?,F(xiàn)在,您將看到一個(gè)頁面,該頁面是由中間件運(yùn)行時(shí)信息頁面。

asp.net core實(shí)例教程之設(shè)置中間件的方法

你將看到一個(gè)返回頁面,它給你展示了一些關(guān)于你的運(yùn)行時(shí)環(huán)境,如操作系統(tǒng)、運(yùn)行時(shí)版本,結(jié)構(gòu),類型和您正在使用的所有包的信息。

感謝各位的閱讀!看完上述內(nèi)容,你們對asp.net core實(shí)例教程之設(shè)置中間件的方法大概了解了嗎?希望文章內(nèi)容對大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


網(wǎng)頁標(biāo)題:asp.netcore實(shí)例教程之設(shè)置中間件的方法-創(chuàng)新互聯(lián)
文章出自:http://weahome.cn/article/cdoose.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部