필터는 WebApi Framework 요청 처리의 다양한 수준에서 추가 논리를 주입하는 데 사용됩니다. 필터는 교차 문제(로깅, 권한 부여 및 캐싱)에 대한 방법을 제공합니다. 필터는 선언적 또는 프로그래밍 방식으로 작업 메서드 또는 컨트롤러에 적용할 수 있습니다. 다음은 Web API C#의 필터 유형입니다.
인증 필터 -
인증 필터는 사용자 세부 정보를 인증하는 데 도움이 됩니다. 인증 필터에서 사용자의 진위 여부를 확인하는 로직을 작성합니다.
승인 필터 -
권한 부여 필터는 사용자 액세스를 확인하는 역할을 합니다. 프레임워크에서 IAuthorizationFilter인터페이스를 구현합니다.
액션 필터 -
작업 필터는 작업 메서드 실행 전후에 추가 논리를 추가하는 데 사용됩니다. OnActionExecuting 및 OnActionExecuted 메서드는 작업 메서드가 실행되기 전후에 논리를 추가하는 데 사용됩니다.
예외 필터 -
컨트롤러 메서드가 HttpResponseException 예외가 아닌 처리되지 않은 예외를 throw하면 예외 필터가 실행됩니다. HttpResponseException 유형은 HTTP 응답을 반환하도록 특별히 설계되었기 때문에 특수한 경우입니다.
필터 재정의 -
재정의 필터는 개별 조치 방법에 대한 다른 필터의 동작을 사용자 정의하는 데 사용됩니다. 때때로 우리가 가지고 있는 필터가 무엇이든 재정의해야 하는 것과 같은 요구 사항이 있습니다. 컨트롤러 수준에서 필터를 적용했지만 필터의 무시 버전을 사용할 수 있도록 필터를 사용하고 싶지 않은 작업이 컨트롤러 내에 있다고 가정해 보겠습니다.
필터는 일반적으로 다음 세 가지 방법으로 적용됩니다.
-
컨트롤러 수준에서
-
ActionMethod 수준에서
-
전역 수준(WebApi.Config.cs)
인증 필터 구현의 예와 작동 방식을 살펴보겠습니다.
예시
using System.Web.Http; namespace DemoWebApplication.Controllers{ public class DemoController : ApiController{ [Authorize] public IHttpActionResult Get(){ return Ok(); } } }
액션 메소드에 권한 부여 속성을 추가했기 때문에 액션 메소드에 접근하려면 베어러 토큰, API 키, OAuth 등과 같은 적절한 권한 부여를 사용해야 합니다. 무단 액세스는 401 Unauthorized가 됩니다. 아래에 표시된 응답입니다.