.net core 의 Authorization 필터 사용
5148 단어 .netcoreAuthorization필터
우 리 는 전편 에서 필터 에 대한 간단 한 소 개 를 했 지만 어떻게 사용 하 는 지 는 소개 하지 않 았 다.다음 몇 편 은 제 가 어떻게 사용 하 는 지 말씀 드 리 겠 습 니 다.오늘 첫 편 은 Authorization 입 니 다.인증 필터,
개발 환경 소개
개발 도구:VS 2019
개발 환경:.net core 3.1
1.항목 만 들 기
먼저 Api 프로젝트 를 만 들 고.net core 버 전 을 선택 하고 선택 하고 만 들 기 를 누 르 면 됩 니 다.
2 사용자 정의 클래스 만 들 기
public class AuthenticationTest: IAuthorizationFilter
{
public void OnAuthorization(AuthorizationFilterContext context)
{
//
}
}
IAuthorizationFilter 소스 코드 보기IAuthorizationFilter 인 터 페 이 스 는 OnAuthorization 방법 이 하나 밖 에 없습니다.
클래스 를 만 들 고 IAuthorizationFilter 인 터 페 이 스 를 계승 한 다음 인터페이스 방법 을 실현 합 니 다.좀 궁금 하지 않 아 요?Authorization Filter Context 가 뭐 예요?
3 Authorization Filter Context 는 무엇 입 니까?
중국어 이해:권한 부여 필터 상하 문
6 대 속성:
public class AuthenticationTest: IAuthorizationFilter
{
public void OnAuthorization(AuthorizationFilterContext context)
{
Console.WriteLine(" Authorization ");
//
var url = context.HttpContext.Request.Path.Value;
#region
var heads = context.HttpContext.Request.Headers;
string msg = string.Empty;
foreach (var item in heads)
{
msg += item.Key + ":" + item.Value + "\r
";
}
Console.WriteLine(" heads:" + msg);
#endregion
}
}
5 전역 필터 등록Startup.cs 파일 을 찾 은 다음 Configure Services 방법 을 찾 아 코드 를 다음 과 같이 수정 합 니 다.
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
//
#region
services.AddMvc(a => {
a.Filters.Add<AuthenticationTest>();
});
#endregion
}
6.시작 항목(여 기 는 Kestrel 을 서버 로 시작 하고 콘 솔 프로그램 을 시작 합 니 다)시작 하면 콘 솔 에서 위의 그림 과 같이 인쇄 합 니 다.현재 요청 한 Head 정 보 를 얻 을 수 있 습 니 다.만약 에 Head 가 Token 을 포함한다 면 우 리 는 token 을 얻 은 다음 에 token 을 검증 할 수 있 고 그 다음 에 일련의 논리 연산 을 할 수 있 습 니 다.
7.1 확장 IAsyncAuthorizationFilter
필 터 는 IAsync Authorization Filter 를 계승 하 는 비동기 필터 도 존재 합 니 다.
public class AsyncAuthentication : IAsyncAuthorizationFilter
{
public Task OnAuthorizationAsync(AuthorizationFilterContext context)
{
return Task.CompletedTask;
}
}
비동기 적 으로 권한 수 여 를 요청 하 는 필 터 를 확인 합 니 다.이전 IAuthorizationFilter 와 달리 요청 을 처리 하 는 방식 이 다 릅 니 다.하 나 는 동기 화 이 고 하 나 는 비동기 입 니 다.스 레 드 를 알 고 있다 면 이들 의 차 이 를 알 아야 합 니 다.간단 한 소개 만 하고 자신의 업무 논 리 를 작성 하면 자 유 롭 게 작성 할 수 있 습 니 다.7.2 확장:401 반환 값 의 정상 적 인 401 오류 수정:
public class AuthenticationTest: IAuthorizationFilter
{
public void OnAuthorization(AuthorizationFilterContext context)
{
context.Result = new StatusCodeResult(401);
}
}
효 과 는 다음 그림 과 같 습 니 다:이것 은 결코 고객 이 보고 싶 어 하 는 것 이 아니 라,우 리 는 반환 값 을 사용자 정의 할 수 있다.
사용자 정의 401 오류:
public class AuthenticationTest: IAuthorizationFilter
{
public void OnAuthorization(AuthorizationFilterContext context)
{
context.Result = new JsonResult(new { StatusCodeResult = StatusCodes.Status401Unauthorized, Title = "401", Time = DateTime.Now,test=" " });
}
}
효 과 는 다음 그림 과 같 습 니 다:사용자 정의 설정 이 되 돌아 오 는 값 은 제한 이 없 으 며 장면 에 따라 사용자 정의 가 가능 하 며 적당 한 것 이 좋 습 니 다.
8.요약:
위의 동작 을 통 해 사용자 정의 권한 필터 의 생 성,등록,사용 등 을 알 수 있 을 것 입 니 다.이 필 터 는 사용자 의 요청 을 제어 할 수 있 습 니 다.현재 사용자 가 익명 으로 로그 인 할 수 있 는 요청 이 무엇 인지,현재 사용자 가 접근 할 수 없 는 요청 이 무엇 인지,한편 으로 는 사용자 정의 권한 관 리 를 작성 하 는 데 도움 을 줄 수 있 습 니까?아니면 그 말 이 적당 한 것 이 중요 합 니까?
.net core 의 Authorization 필터 사용 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련.net core 필터 내용 은 이전 글 을 검색 하거나 아래 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!
작자:생선 을 좋아 하 는 청년
출처:https://home.cnblogs.com/u/2828sea/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
AS를 통한 Module 개발1. ModuleLoader 사용 2. IModuleInfo 사용 ASModuleOne 모듈...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.