Partilhar via


ASP0001: O middleware de autorização está configurado incorretamente

Valor
ID da regra ASP0001
Categoria Utilização
A correção é invasiva ou não invasiva Inquebrável

Motivo

Uma chamada fora de ordem para UseAuthorization foi detetada no código de inicialização do aplicativo.

Descrição da regra

Para que a autorização seja eficaz para rotas de terminação, a chamada para UseAuthorization deve aparecer entre as chamadas para UseRouting e UseEndpoints. Na ausência disso, a política de fallback, se configurada, será usada para autorizar todas as solicitações.

Considere o seguinte código:

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

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

A chamada para UseAuthorization aparece antes de UseRouting e, consequentemente, não tem conhecimento do fim.

Como corrigir violações

Altere a ordem em que a chamada para UseAuthorization e UseRouting são executadas.

app.UseStaticFiles();

app.UseRouting();

app.UseAuthorization();

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

Quando suprimir avisos

É seguro suprimir esta regra se a chamada para UseAuthorization se destinar a autorizar a política de fallback em todas as solicitações de saída ou se destinar a autorizar recursos não roteados usando o roteamento por ponto de extremidade.