Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Nota:
Esta no es la versión más reciente de este artículo. Para la versión actual, consulte la versión de .NET 10 de este artículo.
Advertencia
Esta versión de ASP.NET Core ya no se admite. Para obtener más información, consulte la directiva de compatibilidad de .NET y .NET Core. Para la versión actual, consulte la versión de .NET 9 de este artículo.
WebApplication agrega automáticamente el siguiente middleware en aplicaciones de API mínimas en función de determinadas condiciones:
-
UseDeveloperExceptionPagese agrega primero cuandoHostingEnvironmentes"Development". -
UseRoutingse agrega en segundo lugar si el código de usuario aún no llamóUseRoutinga y si hay puntos de conexión configurados, por ejemploapp.MapGet. -
UseEndpointsse agrega al final de la canalización de middleware si hay algún punto de conexión configurado. -
UseAuthenticationse agrega inmediatamente después deUseRoutingsi el código de usuario no llamó aún aUseAuthenticationy siIAuthenticationSchemeProviderse puede detectar en el proveedor de servicios.IAuthenticationSchemeProviderse agrega de forma predeterminada cuando se usaAddAuthentication, y los servicios se detectan medianteIServiceProviderIsService. -
UseAuthorizationse agrega a continuación si el código de usuario no llamó aún aUseAuthorizationy siIAuthorizationHandlerProviderse puede detectar en el proveedor de servicios.IAuthorizationHandlerProviderse agrega de forma predeterminada cuando se usaAddAuthorization, y los servicios se detectan medianteIServiceProviderIsService. - El middleware y los puntos de conexión configurados por el usuario se agregan entre
UseRoutingyUseEndpoints.
El código siguiente es eficazmente lo que produce el middleware automático que se agrega a la aplicación:
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 => {});
En algunos casos, la configuración predeterminada del middleware no es correcta para la aplicación y requiere modificación. Por ejemplo, UseCors se debe llamar a antes UseAuthentication de y UseAuthorization. La aplicación debe llamar a UseAuthentication y UseAuthorization si se llama a UseCors:
app.UseCors();
app.UseAuthentication();
app.UseAuthorization();
Si se debe ejecutar el middleware antes de que se produzca la coincidencia de rutas, se debe llamar a UseRouting y se debe colocar el middleware antes de la llamada a UseRouting.
UseEndpoints no es necesario en este caso, ya que se agrega automáticamente como se ha descrito anteriormente:
app.Use((context, next) =>
{
return next(context);
});
app.UseRouting();
// other middleware and endpoints
Al agregar un middleware de terminal:
- El middleware debe agregarse después de
UseEndpoints. - La aplicación debe llamar
UseRoutinga yUseEndpointspara que el middleware de terminal se pueda colocar en la ubicación correcta.
app.UseRouting();
app.MapGet("/", () => "hello world");
app.UseEndpoints(e => {});
app.Run(context =>
{
context.Response.StatusCode = 404;
return Task.CompletedTask;
});
El middleware de terminal es un middleware que se ejecuta si ningún punto de conexión controla la solicitud.
WebApplication agrega automáticamente el siguiente middleware en aplicaciones de API mínimas en función de determinadas condiciones:
-
UseDeveloperExceptionPagese agrega primero cuandoHostingEnvironmentes"Development". -
UseRoutingse agrega en segundo lugar si el código de usuario aún no llamóUseRoutinga y si hay puntos de conexión configurados, por ejemploapp.MapGet. -
UseEndpointsse agrega al final de la canalización de middleware si hay algún punto de conexión configurado. -
UseAuthenticationse agrega inmediatamente después deUseRoutingsi el código de usuario no llamó aún aUseAuthenticationy siIAuthenticationSchemeProviderse puede detectar en el proveedor de servicios.IAuthenticationSchemeProviderse agrega de forma predeterminada cuando se usaAddAuthentication, y los servicios se detectan medianteIServiceProviderIsService. -
UseAuthorizationse agrega a continuación si el código de usuario no llamó aún aUseAuthorizationy siIAuthorizationHandlerProviderse puede detectar en el proveedor de servicios.IAuthorizationHandlerProviderse agrega de forma predeterminada cuando se usaAddAuthorization, y los servicios se detectan medianteIServiceProviderIsService. - El middleware y los puntos de conexión configurados por el usuario se agregan entre
UseRoutingyUseEndpoints.
El código siguiente es eficazmente lo que produce el middleware automático que se agrega a la aplicación:
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 => {});
En algunos casos, la configuración predeterminada del middleware no es correcta para la aplicación y requiere modificación. Por ejemplo, UseCors se debe llamar a antes UseAuthentication de y UseAuthorization. La aplicación debe llamar a UseAuthentication y UseAuthorization si se llama a UseCors:
app.UseCors();
app.UseAuthentication();
app.UseAuthorization();
Si se debe ejecutar el middleware antes de que se produzca la coincidencia de rutas, se debe llamar a UseRouting y se debe colocar el middleware antes de la llamada a UseRouting.
UseEndpoints no es necesario en este caso, ya que se agrega automáticamente como se ha descrito anteriormente:
app.Use((context, next) =>
{
return next(context);
});
app.UseRouting();
// other middleware and endpoints
Al agregar un middleware de terminal:
- El middleware debe agregarse después de
UseEndpoints. - La aplicación debe llamar
UseRoutinga yUseEndpointspara que el middleware de terminal se pueda colocar en la ubicación correcta.
app.UseRouting();
app.MapGet("/", () => "hello world");
app.UseEndpoints(e => {});
app.Run(context =>
{
context.Response.StatusCode = 404;
return Task.CompletedTask;
});
El middleware de terminal es un middleware que se ejecuta si ningún punto de conexión controla la solicitud.
Para obtener información sobre el middleware antifalsificación en las API mínimas, consulte Evitar ataques de falsificación de solicitudes entre sitios (XSRF/CSRF) en ASP.NET Core
Para obtener más información sobre el middleware, consulte Middleware de ASP.NET Core y la lista de middleware integrados que se pueden agregar a las aplicaciones.
Para obtener más información sobre las API mínimas, consulte Introducción a las API.