> 백엔드 개발 > C#.Net 튜토리얼 > C# ASP.NET Core 미들웨어는 HttpModule과 어떻게 다릅니까?

C# ASP.NET Core 미들웨어는 HttpModule과 어떻게 다릅니까?

PHPz
풀어 주다: 2023-08-28 10:21:10
앞으로
714명이 탐색했습니다.

C# ASP.NET Core 中间件与 HttpModule 有何不同?

web.config 또는 global.asax를 통해 구성된 HttpModule 개발자는 실행 순서를 제어할 수 없습니다.

모듈 순서는 주로 애플리케이션 수명 주기 이벤트를 기반으로 하기 때문입니다. 요청과 응답의 실행 순서는 동일하게 유지됩니다.

HttpModules는 애플리케이션 이벤트에 특정한 코드를 첨부하는 데 도움이 됩니다. HttpModule은 System.web에 바인딩됩니다.

미들웨어는 web.config 파일(진입점)이 아닌 Startup.cs 코드에서 구성됩니다. 애플리케이션의 경우)

HttpModule과 달리 실행 대상과 실행 순서를 완전히 제어할 수 있습니다. ~처럼 추가된 순서대로 실행됩니다.

미들웨어는 요청의 역순으로 응답합니다.

미들웨어는 이러한 이벤트와 무관합니다.

미들웨어는 호스트 독립적입니다.

내장 Asp.Net 코어 미들웨어

인증 인증 지원을 제공합니다.

CORS 도메인 간 리소스 공유를 구성합니다.

Routes 요청 라우팅을 정의하고 제한합니다.

Session 사용자 세션 관리를 지원합니다.

Diagnostics 오류 페이지 및 런타임 정보에 대한 지원이 포함됩니다.

Example

public class MyMiddleware{
   private readonly RequestDelegate _next;
   private readonly ILogger _logger;
   public MyMiddleware(RequestDelegate next, ILoggerFactory logFactory){
      _next = next;
      _logger = logFactory.CreateLogger("MyMiddleware");
   }
   public async Task Invoke(HttpContext httpContext){
      _logger.LogInformation("MyMiddleware executing..");
      await _next(httpContext); // calling next middleware
   }
}
로그인 후 복사

// HTTP 요청 파이프라인에 미들웨어를 추가하기 위한 확장 방법입니다.

public static class MyMiddlewareExtensions{
   public static IApplicationBuilder UseMyMiddleware(this IApplicationBuilder
   builder){
      return builder.UseMiddleware<MyMiddleware>();
   }
}
로그인 후 복사

//다음과 같이 확장 메서드를 사용하여 요청 파이프라인에 사용자 정의 미들웨어를 추가합니다. 아래와 같이

public void Configure(IApplicationBuilder app, IHostingEnvironment env){
   app.UseMiddleware<MyMiddleware>()
   app.Run(async (context) =>{
      await context.Response.WriteAsync("Hello World!");
   });
}
로그인 후 복사

위 내용은 C# ASP.NET Core 미들웨어는 HttpModule과 어떻게 다릅니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿