Compartir vía


ASP0001: El middleware de autorización está configurado incorrectamente

Valor
Identificador de la regla ASP0001
Categoría Uso
La corrección es problemática o no problemática Poco problemático

Causa

Se ha detectado una llamada fuera de servicio a UseAuthorization en el código de inicio de la aplicación.

Descripción de la regla

Para que la autorización sea efectiva para las rutas de punto de conexión, la llamada a UseAuthorization debe aparecer entre las llamadas a UseRouting y UseEndpoints. En ausencia de esto, la directiva de reserva, si está configurada, se usará para autorizar todas las solicitudes.

Observe el código siguiente:

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

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

La llamada a UseAuthorization aparece antes que UseRouting y, por tanto, no tiene en cuenta el punto de conexión.

Cómo corregir infracciones

Cambie el orden en el que se realiza la llamada a UseAuthorization y UseRouting.

app.UseStaticFiles();

app.UseRouting();

app.UseAuthorization();

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

Cuándo suprimir las advertencias

Es seguro suprimir esta regla si la llamada a UseAuthorization está pensada para autorizar la directiva de reserva en todas las solicitudes salientes o está pensada para autorizar los recursos que no se enrutan mediante el enrutamiento de puntos de conexión.