상상코딩 입니다. ^^;
이렇게 하면 되지 않을까 하는...
지금 블로그에만 들어와 있는 상황인지라...
//Startup class 의 ConfigureServices method 에 다음을 추가합니다.
services.AddHttpContextAccessor();
// WoojjaExcludeAuthFilter 라는 Custom Attribute 를 생성합니다.
public class WoojjaExcludeAuthFilter : AuthorizeAttribute, IAuthorizationFilter
{
public WoojjaAuthFilter(params string[] roles)
{
ProtectedRoles = roles;
}
public string[] ProtectedRoles { get; }
public void OnAuthorization(AuthorizationFilterContext context)
{
//container 로부터 IHttpContextAccessor haccess 를 Resolve
var haccess = context.HttpContext.RequestServices.GetRequiredService<IHttpContextAccessor>();
ClaimsPrincipal cp = hcontext.User;
/*
// 또는 WebApi 에서 Claim 을 조회.
using var httpClient = httpClientFactory.CreateClient();
var resp = await httpClient.GetAsync("https://woojja.com/API/GetAccountClaims/woojja");
ProtectedRoles = await resp.Content.ReadAsStringAsync();
*/
for(int i = 0: i < ProtectedRoles.Count: i++){
if(cp.Claims.Where(c => c.Type == jwtClaim.ToString()).Count > 0){
context.Result = new UnauthorizedResult();
}
}
}
}
그리고 Action Result 에 적용합니다.
[Authorize(Roles = "Administrators"]
[WoojjaExcludeAuthFilter("Sales","HRM")]
public async Task<IActionResult> Index()
조만간 적용해 보고 다시 글을 올리겠습니다. ^^;;;
행복한 고수되셔요...
woojja ))*
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
반응형
'Web > ASP.NET Core' 카테고리의 다른 글
[ASP.NET Core] .NET 8 웹 개발 시작하기: Visual Studio 2022 & VS Code로 MVC 프로젝트 만들기 (1편) (1) | 2025.04.30 |
---|---|
[ASP.NET Core] ViewComponent 사용과 TagHelper (0) | 2020.12.25 |
[ASP.NET Core] Windows Hosting Bundle Installer (0) | 2018.11.30 |
[ASP.NET Core] ASP.NET Core 에서 Web Socket 을 관리하기 위한 middleware (0) | 2018.11.28 |
[ASP.NET Core] WebAPI 구축하기. (0) | 2018.11.08 |