>  기사  >  백엔드 개발  >  asp.net 핵심 예제 튜토리얼에서 미들웨어를 설정하는 방법

asp.net 핵심 예제 튜토리얼에서 미들웨어를 설정하는 방법

零下一度
零下一度원래의
2017-06-16 10:04:231685검색

Asp.Net Core-Middleware

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

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

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

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

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

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

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

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

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

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

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

  • 구성 요소가 특정 쿠키를 찾거나 HTTP 헤더의 토큰에 액세스할 수 있습니다.

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

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

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

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

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


Case

이제 간단한 예를 통해 미들웨어에 대해 더 자세히 알아보겠습니다. 시작 클래스의 구성 메서드를 사용하여 미들웨어 구성 요소를 구성합니다.


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

IISP에 등록된 미들웨어 lat formHandler를 사용하면 창을 사용할 수 있습니다. 신원 확인. 들어오는 각 요청을 살펴보고 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를 사용하겠습니다.


 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 페이지를 저장하고 브라우저를 새로 고치면 아래 페이지가 표시됩니다.

이 RuntimeInfoPage는 특정 URL에 대한 요청에만 응답하는 미들웨어입니다. 들어오는 요청이 URL과 일치하지 않으면 이 미들웨어는 해당 요청을 다음 미들웨어로 전달합니다. 요청은 IISPlatformHandler 미들웨어를 거친 다음 UseRuntimeInfoPage 미들웨어로 이동합니다. 응답을 생성하지 않으므로 애플리케이션으로 이동합니다. 문자열을 실행하고 표시합니다.

8단계− URL 끝에 "runtimeinfo"를 추가합니다. 이제 미들웨어에 의한 런타임 정보 페이지가 나타납니다.

운영 체제, 런타임 버전, 구조, 유형 및 사용 중인 모든 패키지 등 런타임 환경에 대한 일부 정보를 보여주는 반환 페이지가 표시됩니다.

위 내용은 asp.net 핵심 예제 튜토리얼에서 미들웨어를 설정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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