ASP0001: Autorisierungsmiddleware ist falsch konfiguriert
Wert | |
---|---|
Regel-ID | ASP0001 |
Kategorie | Verwendung |
Fix führt oder führt nicht zur Unterbrechung | Nicht unterbrechend |
Ursache
Im Startcode der Anwendung wurde ein unzulässiger Aufruf von UseAuthorization erkannt.
Regelbeschreibung
Für eine erfolgreiche Autorisierung für Endpunktrouten sollte der Aufruf von UseAuthorization
zwischen den Aufrufen von UseRouting
und UseEndpoints
positioniert werden. Andernfalls wird (sofern konfiguriert) die Fallbackrichtlinie verwendet, um alle Anforderungen zu autorisieren.
Betrachten Sie folgenden Code:
app.UseStaticFiles();
app.UseAuthorization();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapDefaultControllerRoute();
});
Der Aufruf von UseAuthorization
erfolgt vor UseRouting
und ist daher nicht endpunktfähig.
Behandeln von Verstößen
Ä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?
Diese Regel kann gefahrlos unterdrückt werden, wenn der Aufruf von UseAuthorization
dazu dient, die Fallbackrichtlinie für alle ausgehenden Anforderungen zu autorisieren, oder wenn Ressourcen autorisiert werden sollen, die nicht per Endpunktrouting weitergeleitet werden.