01
Qué es y qué problema resuelve
Cada middleware puede trabajar antes y después del siguiente componente, o detener el recorrido. La respuesta vuelve por la cadena en orden inverso.
Ese modelo explica por qué el manejo de excepciones debe envolver los componentes que pretende atender.
02
Ejemplo paso a paso
Punto de partida Requiere servicios de errores, CORS e identidad registrados. Es un orden ilustrativo; configura el limitador según su estrategia de partición.
Antes de ejecutar
Requiere un host ASP.NET Core 10 preparado. builder y app corresponden a WebApplication.CreateBuilder y Build; las variables y tipos auxiliares deben definirse. Registra los servicios usados antes de Build. El ZIP de consola no contiene esta API. Registra ProblemDetails, autenticación, autorización y CORS con la política Portal antes de usar este orden de middleware.
app.UseExceptionHandler();
app.UseRouting();
app.UseCors("Portal");
app.UseAuthentication();
app.UseAuthorization();
// Mapear endpoints después de configurar el pipeline.Cómo funciona
- Lee los middleware de arriba hacia abajo: ese es el recorrido de entrada.
- Identifica dónde se establece la identidad y dónde se decide el acceso.
- Sigue el retorno de la respuesta y comprueba qué middleware puede tratar errores.
Resultado esperado: La identidad existe al evaluar permisos; el manejo de errores envuelve componentes posteriores.
03
Cuándo usarlo y qué debes evitar
Autenticación establece identidad y autorización usa esa identidad. Un limitador por usuario necesita ejecutarse después de autenticar.
CORS debe ubicarse conforme al routing y la autorización. Un middleware que registra cuerpos completos para depurar puede exponer credenciales; decide propiedades concretas y tiempo de retención.
Ampliación opcional · contexto y variantes del tema
Pipeline y configuración validada al inicio
El middleware procesa la petición en orden y la respuesta de vuelta. El manejador de errores debe envolver componentes posteriores; autenticación identifica al actor y autorización evalúa acceso. Configura CORS antes de autorización cuando haya clientes de navegador. El limitador por usuario necesita que autenticación haya establecido la identidad. HTTPS y cabeceras de proxy requieren conocer la topología: confía únicamente en proxies configurados.
Options agrupa configuración tipada. Valida valores imprescindibles al inicio para evitar que una política defectuosa aparezca en mitad de una solicitud. IOptions sirve para valores estables, IOptionsSnapshot permite una vista por ámbito e IOptionsMonitor cambios observables. No asumas que todos los proveedores recargan valores. Variables de entorno, archivos y gestores de secretos tienen precedencia: documenta cuál domina cada configuración.
Punto de partida El fallo ocurre al arrancar, antes de aceptar tráfico. Para secretos usa un proveedor apropiado al ambiente; el archivo de configuración no es un lugar para claves o tokens.
Antes de ejecutar
Integración con Options de ASP.NET Core
public sealed class ReservaOpciones
{
public int MaximoMinutos { get; init; } = 180;
}
// En Program.cs, antes de Build:
builder.Services.AddOptions<ReservaOpciones>()
.BindConfiguration("Reservas")
.Validate(o => o.MaximoMinutos is >= 15 and <= 480,
"MaximoMinutos fuera del rango permitido")
.ValidateOnStart();Resultado esperado: La aplicación rechaza MaximoMinutos=0 y acepta 180.
04 · Práctica guiada · opcional
Practica lo aprendido
Dibuja el recorrido de una petición válida y otra que falla en el caso de uso.
- 01Prepara el ejemplo con las dependencias indicadas en «Antes de ejecutar».
- 02Dibuja el recorrido de una petición válida y otra que falla en el caso de uso.
- 03Comprueba y registra el resultado: La identidad existe al evaluar permisos; el manejo de errores envuelve componentes posteriores.
Ver solución orientativa
La válida cruza controles y vuelve; la inesperada alcanza el manejador superior. Una denegación prevista no necesita una excepción.
05
Comprueba lo aprendido
Responde antes de abrir la explicación. Esta comprobación es opcional y no guarda una puntuación.
01¿El orden de registro es solo una preferencia de estilo?
No. Cambia los controles y qué fallos puede observar cada componente.
02¿Qué se pierde al evaluar permisos antes de establecer la identidad?
La autorización no dispone todavía de una identidad autenticada para evaluar permisos. Establece la identidad antes y conserva el manejador de errores envolviendo los componentes posteriores.
Cómo demostrar el objetivo
Compara tu práctica con estos resultados. Si solo diseñaste una prueba, registra su resultado como esperado, no como observado.
- El diagrama coloca autenticación antes de autorización.
- Distingues una denegación prevista de una excepción posterior capturada por el manejador.
Qué debes recordar
- El orden de middleware tiene efectos funcionales.
- La respuesta recorre el pipeline en sentido inverso.
Tu cuaderno · notas personales
Cuaderno local
Tus notas del contenido
Se guardan únicamente en este dispositivo. Puedes exportarlas cuando quieras.
Material de apoyo · descarga, glosario y referencias
Explicaciones, ejemplos y prácticas propios de Academia de Software. Los fragmentos de integración requieren las dependencias indicadas; el ZIP contiene el núcleo de consola. Las lecturas externas se consultan en su sitio original y conservan sus condiciones. Procedencia y condiciones de uso.