Freigeben über


ASP0001: Autorisierungs-Middleware ist falsch konfiguriert

Wert
Regel-ID ASP0001
Kategorie Usage
Korrektur ist blockierend oder nicht-blockierend Non-breaking

Ursache

Im Start-Up-Code der Anwendung wurde ein außerhalb der Reihenfolge erfolgter Aufruf von UseAuthorization erkannt.

Regelbeschreibung

Damit die Autorisierung für Endpunktrouten wirksam ist, sollte der Anruf UseAuthorization zwischen den Anrufen UseRouting und UseEndpoints erscheinen. Falls dieses nicht vorhanden ist, wird die Fallback-Richtlinie verwendet, um alle Anforderungen zu autorisieren.

Beachten Sie den folgenden Code:

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

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

Der Aufruf von UseAuthorization erfolgt vor UseRouting und ist folglich nicht endpoint-bewusst.

Wie man Verstöße behebt

Ändern Sie die Reihenfolge, in der die Aufrufe von UseAuthorization und UseRouting ausgeführt werden.

app.UseStaticFiles();

app.UseRouting();

app.UseAuthorization();

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

Wann sollten Warnungen unterdrückt werden?

Es ist sicher, diese Regel zu unterdrücken, wenn der Aufruf UseAuthorization zur Autorisierung der Fallbackrichtlinie für alle ausgehenden Anforderungen vorgesehen ist oder um Ressourcen zu autorisieren, die nicht mithilfe des Endpunktroutings weitergeleitet werden.