Поделиться через


ASP0001. ПО промежуточного слоя авторизации неправильно настроено

Значение
Идентификатор правила ASP0001
Категория Использование
Исправление является критическим или не критическим Не критическое

Причина

В коде запуска приложения обнаружен неупорядоченный вызов UseAuthorization .

Описание правила

Чтобы авторизация была эффективной для маршрутов конечных точек, вызов UseAuthorization должен отображаться между вызовами UseRouting и UseEndpoints. В отсутствие этого резервная политика, если она настроена, будет использоваться для авторизации всех запросов.

Рассмотрим следующий код:

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

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

UseAuthorization Вызов отображается раньше UseRouting и, следовательно, не учитывает конечную точку.

Устранение нарушений

Измените порядок выполнения вызова UseAuthorization и UseRouting выполнения.

app.UseStaticFiles();

app.UseRouting();

app.UseAuthorization();

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

Когда лучше отключить предупреждения

Это правило безопасно подавлять, если вызов UseAuthorization предназначен для авторизации резервной политики во всех исходящих запросах или предназначен для авторизации ресурсов, не маршрутизируемых с помощью маршрутизации конечных точек.