C# Asp.Net webAPI에서 인증 속성의 사용은 무엇입니까?

王林
풀어 주다: 2023-08-25 23:37:08
앞으로
1329명이 탐색했습니다.

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

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

필터를 전체적으로, 컨트롤러 수준 또는 개인 수준에 적용할 수 있습니다. 작동하다.

Global

각 Web API 컨트롤러에 대한 액세스를 제한하려면 AuthorizeAttribute 필터를 다음에 추가하세요. 글로벌 필터 목록.

public static void Register(HttpConfiguration config){
   config.Filters.Add(new AuthorizeAttribute());
}
로그인 후 복사

Controllers

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

//컨트롤러의 모든 작업에는 인증이 필요합니다. [권한 부여]

public class StudentsController: ApiController{
   public HttpResponseMessage Get(int id) { ... }
   public HttpResponseMessage Post() { ... }
}
로그인 후 복사

Actions

특정 작업에 대한 액세스를 제한하려면 이 속성을 작업 메서드에 추가하세요.

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 中的授权属性有什么用?

위 내용은 C# Asp.Net webAPI에서 인증 속성의 사용은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!