권한 부여: 엔드포인트 라우팅의 리소스가 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
없음
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET