다음을 통해 공유


ASP0001: 권한 부여 미들웨어가 잘못 구성됨

규칙 ID ASP0001
범주 사용
수정 사항이 주요 변경인지 여부 주요 변경 아님

원인

애플리케이션 시작 코드에서 UseAuthorization에 대한 순서가 벗어난 호출이 검색되었습니다.

규칙 설명

권한 부여가 엔드포인트 경로에 적용되려면 UseRoutingUseEndpoints에 대한 호출 사이에 UseAuthorization에 대한 호출이 표시되어야 합니다. 이 정책이 없으면 대체 정책이 구성된 경우 모든 요청에 권한을 부여하는 데 사용됩니다.

다음 코드를 생각해 봅시다.

app.UseStaticFiles();
app.UseAuthorization();

app.UseRouting();
app.UseEndpoints(endpoints =>
{
    endpoints.MapDefaultControllerRoute();
});

UseAuthorization에 대한 호출이 UseRouting 앞에 나타나고 결과적으로 엔드포인트를 인식하지 않습니다.

위반 문제를 해결하는 방법

UseAuthorizationUseRouting 에 대한 호출이 수행되는 순서를 변경합니다.

app.UseStaticFiles();

app.UseRouting();

app.UseAuthorization();

app.UseEndpoints(endpoints =>
{
    endpoints.MapDefaultControllerRoute();
});

경고를 표시하지 않는 경우

UseAuthorization에 대한 호출이 나가는 모든 요청에 대한 대체 정책에 권한을 부여하거나 엔드포인트 라우팅을 사용하여 라우팅되지 않은 리소스에 권한을 부여하기 위한 경우 이 규칙을 표시하지 않는 것이 안전합니다.