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.