2025년 1월 21일 화요일

asp.net으로 custom 인증처리 만들기

asp.net 으로 권한처리할때 (로그인말고 Authorization)
개별적인 인증이 필요할때가 있다.

기존 Auth처리말고 새로운 인증을 하고싶을때는 Custom 인증클래스를 만들어야하는데
예를 들어 HttpRequest 해더에 Authorization의 키에 
특정한 값내용이 들어가 있을때 이를 내부에서 별도로 
인증처리하여 실패하면 다음으로 못넘어 가게하고
Unauthorized를 리턴하게 하려면 다음과 같은 클래스를 만들면된다.




[AttributeUsage(AttributeTargets.Method)]
public class CheckCustomToken : Attribute, IAuthorizationFilter
{
     public CheckCustomToken() { }

     //
     public void OnAuthorization(AuthorizationFilterContext context)
     {
         //
         StringValues sv_authToken = "";
         context.HttpContext.Request.Headers.TryGetValue("Authorization", out sv_authToken);
         string str_authToken = sv_authToken.FirstOrDefault();

         // str_authToken 가지고 어쩌고 저쩌고
         bool bChk_auth = 췍췍(str_authToken);
         if (!bChk_auth)
         {
             context.Result = new UnauthorizedObjectResult("Invalid Token" );
             return;
         }
     }
}



이렇게 해서  컨트롤러의 메서드에서 다음처럼 Attribute로 달면된다.




[HttpPost]
[CheckCustomToken]
public async Task<IActionResult> gogosing()
{
    Ok();
}




요로코롬

댓글 없음:

댓글 쓰기