Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

C# Asp.Net webAPI에서 Authorize Attribute의 용도는 무엇입니까?

<시간/>

권한 부여는 인증된 사용자가 특정 리소스(Web API 리소스)에 대해 작업을 수행할 수 있는지 여부를 결정하는 프로세스입니다. 예를 들어 데이터를 가져오고 데이터를 게시할 수 있는 권한을 갖는 것은 권한 부여의 일부입니다. 권한 부여 프로세스는 해당 리소스에 대한 액세스 권한을 부여할지 여부를 결정할 수 있는 유연성을 제공하는 컨트롤러 작업 메서드를 실행하기 전에 발생합니다.

ASP.NET Web API에서 권한 부여는 컨트롤러 작업 메서드가 실행되기 전에 실행될 권한 부여 필터를 사용하여 구현됩니다. Web API는 내장 권한 부여 필터인 AuthorizeAttribute를 제공합니다. 이 필터는 사용자가 인증되었는지 여부를 확인합니다. 그렇지 않은 경우 작업을 호출하지 않고 HTTP 상태 코드 401(Unauthorized)을 반환합니다.

필터를 전역적으로, 컨트롤러 수준에서 또는 개별 작업 수준에서 적용할 수 있습니다.

전 세계적으로

모든 Web API 컨트롤러에 대한 액세스를 제한하려면 AuthorizeAttribute 필터를 전역 필터 목록에 추가하십시오.

public static void Register(HttpConfiguration config){
   config.Filters.Add(new AuthorizeAttribute());
}

컨트롤러

특정 컨트롤러에 대한 액세스를 제한하려면 컨트롤러에 필터를 속성으로 추가하세요.

// 컨트롤러의 모든 작업에 대한 승인이 필요합니다.[승인]

public class StudentsController: ApiController{
   public HttpResponseMessage Get(int id) { ... }
   public HttpResponseMessage Post() { ... }
}

액션

특정 액션에 대한 접근을 제한하려면 액션 메소드에 속성을 추가하세요.

public class StudentsController : ApiController{
   public HttpResponseMessage Get() { ... }
   // Require authorization for a specific action.
   [Authorize]
   public HttpResponseMessage Post() { ... }
}

using System.Web.Http;
namespace DemoWebApplication.Controllers{
   public class DemoController : ApiController{
      [Authorize]
      public IHttpActionResult Get(){
         return Ok();
      }
   }
}

액션 메소드에 권한 부여 속성을 추가했기 때문에 액션 메소드에 접근하려면 베어러 토큰, API 키, OAuth 등과 같은 적절한 권한 부여를 사용해야 합니다. 무단 액세스는 401 Unauthorized가 됩니다. 아래에 표시된 응답입니다.

C# Asp.Net webAPI에서 Authorize Attribute의 용도는 무엇입니까?