Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. 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 .NET 10 deste artigo.
Advertência
Esta versão do ASP.NET Core não é mais suportada. 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". -
UseRoutingé adicionado em segundo se o código do usuário ainda não tiver chamadoUseRoutinge se houver pontos de extremidade configurados, por exemploapp.MapGet. -
UseEndpointsé adicionado no final do pipeline de middleware se algum ponto de extremidade estiver configurado. -
UseAuthenticationé adicionado imediatamente apósUseRoutingse o código do usuário ainda não tiver sido chamadoUseAuthenticatione seIAuthenticationSchemeProviderpuder ser detetado no provedor de serviços.IAuthenticationSchemeProvideré adicionado por padrão ao usarAddAuthenticationo , e os serviços são detetados usandoIServiceProviderIsServiceo . -
UseAuthorizationé adicionado em seguida se o código do usuário ainda não tiver chamadoUseAuthorizatione seIAuthorizationHandlerProviderpuder ser detetado no provedor de serviços.IAuthorizationHandlerProvideré adicionado por padrão ao usarAddAuthorizationo , e os serviços são detetados usandoIServiceProviderIsServiceo . - O middleware e os pontos de extremidade configurados pelo usuário são adicionados entre
UseRoutingeUseEndpoints.
O código a seguir é efetivamente o 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 está correta para o aplicativo e requer modificação. Por exemplo, UseCors deve ser chamado antes UseAuthentication e UseAuthorization. O aplicativo precisa chamar UseAuthentication e UseAuthorization se UseCors é chamado:
app.UseCors();
app.UseAuthentication();
app.UseAuthorization();
Se o middleware deve ser executado antes da correspondência de rota ocorrer, UseRouting deve ser chamado e o middleware deve ser colocado antes da chamada para UseRouting.
UseEndpoints não é necessário neste caso, pois é 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". -
UseRoutingé adicionado em segundo se o código do usuário ainda não tiver chamadoUseRoutinge se houver pontos de extremidade configurados, por exemploapp.MapGet. -
UseEndpointsé adicionado no final do pipeline de middleware se algum ponto de extremidade estiver configurado. -
UseAuthenticationé adicionado imediatamente apósUseRoutingse o código do usuário ainda não tiver sido chamadoUseAuthenticatione seIAuthenticationSchemeProviderpuder ser detetado no provedor de serviços.IAuthenticationSchemeProvideré adicionado por padrão ao usarAddAuthenticationo , e os serviços são detetados usandoIServiceProviderIsServiceo . -
UseAuthorizationé adicionado em seguida se o código do usuário ainda não tiver chamadoUseAuthorizatione seIAuthorizationHandlerProviderpuder ser detetado no provedor de serviços.IAuthorizationHandlerProvideré adicionado por padrão ao usarAddAuthorizationo , e os serviços são detetados usandoIServiceProviderIsServiceo . - O middleware e os pontos de extremidade configurados pelo usuário são adicionados entre
UseRoutingeUseEndpoints.
O código a seguir é efetivamente o 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 está correta para o aplicativo e requer modificação. Por exemplo, UseCors deve ser chamado antes UseAuthentication e UseAuthorization. O aplicativo precisa chamar UseAuthentication e UseAuthorization se UseCors é chamado:
app.UseCors();
app.UseAuthentication();
app.UseAuthorization();
Se o middleware deve ser executado antes da correspondência de rota ocorrer, UseRouting deve ser chamado e o middleware deve ser colocado antes da chamada para UseRouting.
UseEndpoints não é necessário neste caso, pois é 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 Prevenir ataques de falsificação de solicitação entre sites (XSRF/CSRF) no ASP.NET Core
Para obter mais informações sobre middleware, consulte ASP.NET Core Middleware e a lista de middleware interno que podem ser adicionados a aplicativos.
Para obter mais informações sobre APIs mínimas, consulte Visão geral de APIs.