中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

asp.net core實例教程之設置中間件的方法

發布時間:2020-08-29 14:50:59 來源:億速云 閱讀:191 作者:小新 欄目:編程語言

asp.net core實例教程之設置中間件的方法?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家帶來的參考內容,讓我們一起來看看吧!

Asp.Net Core-中間件

在這一章,我們將了解如何設置中間件。中間件技術在 ASP.NET Core中控制我們的應用程序如何響應 HTTP 請求。它還可以控制應用程序的異常錯誤,這是一個在如何進行身份驗證和授權用戶執行特定的操作的關鍵。

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

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

  • Request委托用于構建請求管道。Request委托用來處理每個HTTP請求。

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

  • 最終,我們需要很多的中間件為應用程序提供適當的行為。

現在讓我們假設我們想將每個對我們應用程序的請求都記錄日志。

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

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

asp.net core實例教程之設置中間件的方法

  • 中間件是以一系列的組件出現在這個處理管道中。

  • 我們安裝到應用程序的下一個中間件是一個授權組件。

  • 一個組件可能是尋找特定cookie或訪問HTTP標頭中的令牌。

  • 如果授權組件發現一個令牌,它允許請求繼續。

  • 如果不是,授權組件本身可能會響應請求的HTTP錯誤代碼或將用戶重定向到登錄頁面。

  • 否則,授權組件將請求傳遞給下一個路由器的中間件。

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

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


案例

現在讓我們通過一個簡單的例子來理解更多關于中間件的知識。我們通過使用我們的啟動類的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<Startup>(args); 
   } 
}
Configure()方法內,我們將調用IApplicationBuilder接口的擴展方法來添加中間件。

默認情況下在一個新的空項目有兩塊中間件-

  • IISPlatformHandler

  • Middleware registered with app.Run


IISPlatformHandler

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

Middleware registered with app.Run

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

你注冊運行的中間件將永遠不會有機會調用另一個中間件,它唯一能做的就是接收請求,便要產生某種反應。

你也訪問到一個響應對象,你可以在響應對象中添加一些字符串。

如果你想在app.Run之后注冊另一個中間件,這段中間件將永遠不會被調用,因為Run方法是一個中間件的終端。它不會調用下一個塊中間件。

如何添加一個中間件

讓我們著手進行以下步驟來添加另一個中間件 ?

步驟1?右鍵單擊項目并選擇Manage NuGet Packages。

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

asp.net core實例教程之設置中間件的方法

步驟3?如果該包沒有安裝在您的項目中,那選擇安裝這個包。

步驟4?現在讓我們在Configure()方法調用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 ? 運行您的應用程序,您將看到以下的歡迎屏幕。

asp.net core實例教程之設置中間件的方法

這個歡迎屏幕可能不是那么有用。

步驟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實例教程之設置中間件的方法

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

步驟8?我們在URL結尾添加“ runtimeinfo”。現在,您將看到一個頁面,該頁面是由中間件運行時信息頁面。

asp.net core實例教程之設置中間件的方法

你將看到一個返回頁面,它給你展示了一些關于你的運行時環境,如操作系統、運行時版本,結構,類型和您正在使用的所有包的信息。

感謝各位的閱讀!看完上述內容,你們對asp.net core實例教程之設置中間件的方法大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁远县| 宣化县| 武宁县| 兰坪| 南投市| 井冈山市| 广宁县| 左云县| 牡丹江市| 尉氏县| 南靖县| 阿拉善盟| 泰顺县| 大港区| 隆德县| 清新县| 利川市| 读书| 通城县| 五家渠市| 桂林市| 凉城县| 溆浦县| 阿图什市| 罗山县| 金塔县| 泗洪县| 福海县| 樟树市| 吴忠市| 承德市| 陈巴尔虎旗| 惠安县| 安龙县| 武川县| 三江| 道孚县| 军事| 察雅县| 盐津县| 诸城市|