Udostępnij za pośrednictwem


ASP0001: Oprogramowanie pośredniczące autoryzacji jest niepoprawnie skonfigurowane

Wartość
Identyfikator reguły ASP0001
Kategoria Użycie
Poprawka powodująca niezgodność lub niezgodność Niezgodność

Przyczyna

Wykryto wywołanie UseAuthorization poza kolejnością w kodzie uruchamiania aplikacji.

Opis reguły

Aby autoryzacja obowiązywała w przypadku tras punktów końcowych, wywołanie powinno pojawić UseAuthorization się między wywołaniami do UseRouting i UseEndpoints. W przypadku braku tych zasad rezerwowych, jeśli zostały skonfigurowane, będą używane do autoryzowania wszystkich żądań.

Rozważ następujący kod:

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

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

Wywołanie , które ma pojawić się UseAuthorization przed UseRouting i w związku z tym nie jest świadome punktu końcowego.

Jak naprawić naruszenia

Zmień kolejność, w jakiej jest wykonywane wywołanie UseAuthorization i UseRouting .

app.UseStaticFiles();

app.UseRouting();

app.UseAuthorization();

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

Kiedy pomijać ostrzeżenia

Można bezpiecznie pominąć tę regułę, jeśli wywołanie metody UseAuthorization ma autoryzować zasady rezerwowe dla wszystkich żądań wychodzących lub ma na celu autoryzowanie zasobów, które nie są kierowane przy użyciu routingu punktu końcowego.