권한 부여: 엔드포인트 라우팅의 리소스가 HttpContext임
ASP.NET Core 3.1에서 엔드포인트 라우팅을 사용하는 경우 권한 부여에 사용되는 리소스는 엔드포인트입니다. 이 방법만으로 경로 데이터(RouteData)에 대한 액세스 권한을 얻을 수는 없었습니다. 이전에는 MVC에서 엔드포인트(Endpoint) 및 경로 데이터 둘 다에 대한 액세스를 허용하는 HttpContext 리소스가 전달되었습니다. 이렇게 변경하면 권한 부여에 전달되는 리소스가 항상 HttpContext
입니다.
도입된 버전
ASP.NET Core 5.0
이전 동작
엔드포인트 라우팅과 권한 부여 미들웨어(AuthorizationMiddleware) 또는 [Authorize] 특성을 사용하는 경우 권한 부여에 전달되는 리소스는 일치하는 엔드포인트입니다.
새 동작
엔드포인트 라우팅이 권한 부여에 HttpContext
를 전달합니다.
변경 이유
HttpContext
에서 엔드포인트에 액세스할 수 있습니다. 그러나 엔드포인트에서 경로 데이터 등에 액세스할 수 있는 방법이 없었습니다. 비엔드포인트 라우팅의 기능이 손실되었습니다.
권장 작업
앱에서 엔드포인트 리소스를 사용하는 경우 HttpContext
에 대해 GetEndpoint를 호출하여 엔드포인트에 계속 액세스합니다.
SetSwitch를 사용하여 이전 동작으로 되돌릴 수 있습니다. 예시:
AppContext.SetSwitch(
"Microsoft.AspNetCore.Authorization.SuppressUseHttpContextAsAuthorizationResource",
isEnabled: true);
영향을 받는 API
없음
.NET
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기