Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Observação
Esta não é a versão mais recente deste artigo. Para a versão atual, consulte a versão do .NET 10 deste artigo.
Aviso
Esta versão do ASP.NET Core não tem mais suporte. Para obter mais informações, consulte a Política de Suporte do .NET e do .NET Core. Para a versão atual, consulte a versão .NET 9 deste artigo.
WebApplication adiciona automaticamente o seguinte middleware em aplicativos de API mínima , dependendo de determinadas condições:
-
UseDeveloperExceptionPageé adicionado primeiro quando oHostingEnvironmenté"Development". -
UseRoutingserá adicionado em segundo se o código do usuário ainda não tiver chamadoUseRoutinge se houver pontos de extremidade configurados, por exemploapp.MapGet. -
UseEndpointsserá adicionado no final do pipeline de middleware se algum ponto de extremidade estiver configurado. -
UseAuthenticationserá adicionado imediatamente apósUseRoutingse o código do usuário ainda não tiver chamadoUseAuthenticatione seIAuthenticationSchemeProviderpuder ser detectado no provedor de serviços.IAuthenticationSchemeProvideré adicionado por padrão ao usarAddAuthentication, e os serviços são detectados usandoIServiceProviderIsService. -
UseAuthorizationserá adicionado em seguida se o código do usuário ainda não tiver chamadoUseAuthorizatione seIAuthorizationHandlerProviderpuder ser detectado no provedor de serviços.IAuthorizationHandlerProvideré adicionado por padrão ao usarAddAuthorization, e os serviços são detectados usandoIServiceProviderIsService. - O middleware e os pontos de extremidade configurados pelo usuário são adicionados entre
UseRoutingeUseEndpoints.
O código a seguir é de fato aquilo que o middleware automático que está sendo adicionado ao aplicativo produz:
if (isDevelopment)
{
app.UseDeveloperExceptionPage();
}
app.UseRouting();
if (isAuthenticationConfigured)
{
app.UseAuthentication();
}
if (isAuthorizationConfigured)
{
app.UseAuthorization();
}
// user middleware/endpoints
app.CustomMiddleware(...);
app.MapGet("/", () => "hello world");
// end user middleware/endpoints
app.UseEndpoints(e => {});
Em alguns casos, a configuração de middleware padrão não é a correta para o aplicativo e requer modificação. Por exemplo, UseCors deve ser chamado antes de UseAuthentication e de UseAuthorization. O aplicativo precisa chamar UseAuthentication e UseAuthorization se UseCors for chamado:
app.UseCors();
app.UseAuthentication();
app.UseAuthorization();
Se o middleware tiver que ser executado antes da correspondência de rotas ocorrer, UseRouting deverá ser chamado e o middleware deverá ser colocado antes da chamada para UseRouting.
UseEndpoints não é necessário nesse caso, já que é adicionado automaticamente conforme descrito anteriormente:
app.Use((context, next) =>
{
return next(context);
});
app.UseRouting();
// other middleware and endpoints
Ao adicionar um middleware de terminal:
- O middleware deve ser adicionado após
UseEndpoints. - O aplicativo precisa chamar
UseRoutingeUseEndpointspara que o middleware do terminal possa ser colocado no local correto.
app.UseRouting();
app.MapGet("/", () => "hello world");
app.UseEndpoints(e => {});
app.Run(context =>
{
context.Response.StatusCode = 404;
return Task.CompletedTask;
});
O middleware de terminal é um middleware que é executado se nenhum ponto de extremidade lidar com a solicitação.
WebApplication adiciona automaticamente o seguinte middleware em aplicativos de API mínima , dependendo de determinadas condições:
-
UseDeveloperExceptionPageé adicionado primeiro quando oHostingEnvironmenté"Development". -
UseRoutingserá adicionado em segundo se o código do usuário ainda não tiver chamadoUseRoutinge se houver pontos de extremidade configurados, por exemploapp.MapGet. -
UseEndpointsserá adicionado no final do pipeline de middleware se algum ponto de extremidade estiver configurado. -
UseAuthenticationserá adicionado imediatamente apósUseRoutingse o código do usuário ainda não tiver chamadoUseAuthenticatione seIAuthenticationSchemeProviderpuder ser detectado no provedor de serviços.IAuthenticationSchemeProvideré adicionado por padrão ao usarAddAuthentication, e os serviços são detectados usandoIServiceProviderIsService. -
UseAuthorizationserá adicionado em seguida se o código do usuário ainda não tiver chamadoUseAuthorizatione seIAuthorizationHandlerProviderpuder ser detectado no provedor de serviços.IAuthorizationHandlerProvideré adicionado por padrão ao usarAddAuthorization, e os serviços são detectados usandoIServiceProviderIsService. - O middleware e os pontos de extremidade configurados pelo usuário são adicionados entre
UseRoutingeUseEndpoints.
O código a seguir é de fato aquilo que o middleware automático que está sendo adicionado ao aplicativo produz:
if (isDevelopment)
{
app.UseDeveloperExceptionPage();
}
app.UseRouting();
if (isAuthenticationConfigured)
{
app.UseAuthentication();
}
if (isAuthorizationConfigured)
{
app.UseAuthorization();
}
// user middleware/endpoints
app.CustomMiddleware(...);
app.MapGet("/", () => "hello world");
// end user middleware/endpoints
app.UseEndpoints(e => {});
Em alguns casos, a configuração de middleware padrão não é a correta para o aplicativo e requer modificação. Por exemplo, UseCors deve ser chamado antes de UseAuthentication e de UseAuthorization. O aplicativo precisa chamar UseAuthentication e UseAuthorization se UseCors for chamado:
app.UseCors();
app.UseAuthentication();
app.UseAuthorization();
Se o middleware tiver que ser executado antes da correspondência de rotas ocorrer, UseRouting deverá ser chamado e o middleware deverá ser colocado antes da chamada para UseRouting.
UseEndpoints não é necessário nesse caso, já que é adicionado automaticamente conforme descrito anteriormente:
app.Use((context, next) =>
{
return next(context);
});
app.UseRouting();
// other middleware and endpoints
Ao adicionar um middleware de terminal:
- O middleware deve ser adicionado após
UseEndpoints. - O aplicativo precisa chamar
UseRoutingeUseEndpointspara que o middleware do terminal possa ser colocado no local correto.
app.UseRouting();
app.MapGet("/", () => "hello world");
app.UseEndpoints(e => {});
app.Run(context =>
{
context.Response.StatusCode = 404;
return Task.CompletedTask;
});
O middleware de terminal é um middleware que é executado se nenhum ponto de extremidade lidar com a solicitação.
Para obter informações sobre middleware antifalsificação em APIs mínimas, consulte Evitar ataques de falsificação de solicitação entre sites (XSRF/CSRF) no ASP.NET Core
Para saber mais sobre middleware, confira ASP.NET Core Middleware e a lista de middleware internos que podem ser adicionados aos aplicativos.
Para obter mais informações sobre APIs mínimas, consulte a visão geral das APIs.