다음을 통해 공유


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

가치
규칙 아이디 ASP0001
범주 Usage
수정 사항이 문제를 해결하고 있는지 혹은 새로운 문제를 일으키지 않는지 여부 Non-breaking

원인

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

규칙 설명

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

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

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 호출이 모든 나가는 요청에 대한 대체 정책에 권한을 부여하려 하거나, 엔드포인트 라우팅을 사용하지 않고 라우팅되는 리소스에 권한을 부여하려고 할 때, 이 규칙을 무시해도 안전합니다.