>  기사  >  백엔드 개발  >  ASP.NET Core 미들웨어 설정 튜토리얼(7)_실용 팁

ASP.NET Core 미들웨어 설정 튜토리얼(7)_실용 팁

微波
微波원래의
2017-06-28 14:07:481472검색

이 글에서는 ASP.NET CoreMiddleware의 설정 튜토리얼을 주로 소개합니다. 관심 있는 친구들은

Asp.Net Core-Middleware

를 참고하세요.

이 장에서는 미들웨어를 설정하는 방법. ASP.NET Core의 미들웨어 기술은 애플리케이션이 HTTP 요청에 응답하는 방식을 제어합니다. 또한 사용자가 특정 작업을 수행할 수 있도록 인증하고 권한을 부여하는 방법의 핵심인 애플리케이션 예외 오류를 제어할 수도 있습니다.

  • 미들웨어는 요청과 응답을 처리하기 위해 애플리케이션의 파이프라인에 조립된 소프트웨어 구성 요소입니다.

  • 각 구성 요소는 요청을 파이프라인의 다음 구성 요소로 전달할지 여부를 선택할 수 있으며 파이프라인의 작업 전후에 특정 작업을 수행할 수 있습니다.

  • 요청 대리자는 요청 파이프라인을 구축하는 데 사용됩니다. 요청 대리자는 각 HTTP 요청을 처리하는 데 사용됩니다.

  • ASP.NET Core의 모든 미들웨어 부분은 개체이며 각 부분에는 매우 구체적이고 집중적이며 제한된 역할이 있습니다.

  • 궁극적으로 애플리케이션에 적절한 동작을 제공하려면 많은 미들웨어가 필요합니다.

이제 모든 요청을 애플리케이션에 기록한다고 가정해 보겠습니다.

  • 이 경우 애플리케이션에 설치하는 첫 번째 미들웨어는 로깅 구성 요소입니다.

  • 이 로거는 들어오는 모든 요청을 볼 수 있으며 미들웨어는 일부 정보를 기록한 후 이 요청을 다음 블록 미들웨어에 전달합니다.

  • 미들웨어는 이 처리 파이프라인에 일련의 구성 요소로 나타납니다.

  • 애플리케이션에 설치하는 다음 미들웨어는 인증 구성 요소입니다.

  • 구성 요소는 특정 cookie을 찾거나 HTTP 헤더의 토큰에 액세스할 수 있습니다.

  • 인증 구성 요소가 토큰을 찾으면 요청을 계속할 수 있습니다.

  • 그렇지 않은 경우 인증 구성 요소 자체가 HTTP 오류 코드로 요청에 응답하거나 사용자를 로그인 페이지로 리디렉션할 수 있습니다.

  • 그렇지 않으면 인증 구성 요소가 요청을 다음 라우터의 미들웨어로 전달합니다.

  • 라우터는 URL을 보고 다음 작업을 결정합니다.

  • 라우터가 응답을 수행하는 중입니다. 라우터가 응답을 찾지 못하면 라우터 자체가 404 Not Found 오류를 반환할 수 있습니다.

사례

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

app.Run

IISPlatformHandler

IISPlatformHandler에 등록된 미들웨어를 사용하면 Windows 인증을 사용할 수 있습니다. 들어오는 각 요청을 살펴보고 Windows ID 관련 요청이 있는지 확인한 후 다음 블록 미들웨어를 호출합니다.

app.Run에 등록된 미들웨어

이 경우 미들웨어는 app.Run에 등록됩니다. Run 메서드를 사용하면 각 응답을 처리하는 데 사용할 수 있는 다른 메서드를 전달할 수 있습니다. Run 메소드는 흔히 볼 수 있는 것이 아니며, 미들웨어 터미널이라고 부를 수 있습니다.

실행하기 위해 등록한 미들웨어는 다른 미들웨어를 호출할 기회가 전혀 없으며 요청을 받고 일종의 응답을 생성하는 것뿐입니다.

응답 개체에 액세스할 수도 있으며 응답 개체에 문자열을 추가할 수도 있습니다.

app.Run 이후에 다른 미들웨어를 등록하려는 경우 Run 메소드가 미들웨어의 터미널이기 때문에 이 미들웨어는 호출되지 않습니다. 다음 블록 미들웨어를 호출하지 않습니다.

미들웨어 추가 방법

다른 미들웨어를 추가하려면 다음 단계를 진행해 보겠습니다. −

1단계− 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 NuGet 패키지 관리를 선택합니다.

2단계−검색 Microsoft.aspnet.diagnostics, 이 특정 패키지에는 우리가 사용할 수 있는 다양한 종류의 미들웨어가 포함되어 있습니다.

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단계 - 애플리케이션을 실행하면 다음과 같은 시작 화면이 표시됩니다.

이 환영 화면은 그다지 유용하지 않을 수 있습니다.

步骤6−让我们试试别的东西,可能是更有用的,而不是使用欢迎页面,我们将使用RuntimeInfoPage。

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

第 7 步 − 保存您的 Startup.cs 页面并刷新您的浏览器,你会看到下面的页面。

这个 RuntimeInfoPage 是中间件,将只响应一个特定的 URL 的请求。如果传入的请求与该 URL 不匹配,这个中间件只是让请求传递到下一件中间件。该请求将通过 IISPlatformHandler 中间件,然后转到 UseRuntimeInfoPage 中间件。它不会创建响应,所以它会转到我们的应用程序。运行并显示该字符串。

步骤8−我们在URL结尾添加“ runtimeinfo”。现在,您将看到一个页面,该页面是由中间件运行时信息页面。

你将看到一个返回页面,它给你展示了一些关于你的运行时环境,如操作系统、运行时版本,结构,类型和您正在使用的所有包的信息。

위 내용은 ASP.NET Core 미들웨어 설정 튜토리얼(7)_실용 팁의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.