Desarrollador .NET: pregunta de entrevista
¿Cómo ordenas middleware de ASP.NET Core?
El middleware ASP.NET Core envuelve al siguiente, por lo que el orden define flujo de request y response inverso. Pon errores pronto, routing antes de políticas, autenticación antes de autorización y endpoints al final.
Respuesta directa
Qué debe cubrir una buena respuesta
Cómo funciona
Cada middleware recibe la solicitud, puede trabajar, llama a next para pasarla y vuelve a trabajar cuando la respuesta regresa, así que el orden de registro es el orden de la solicitud y el inverso es el de la respuesta. El manejo de excepciones va primero para envolver todo lo que sigue. La redirección HTTPS y los ficheros estáticos van pronto para cortar barato. UseRouting debe preceder a lo que necesita el endpoint emparejado, como CORS con políticas por endpoint, autenticación y autorización, y la autenticación debe preceder a la autorización porque esta lee la identidad que aquella estableció. Los endpoints van al final.
Ejemplo
Una API colocó UseAuthorization antes de UseAuthentication y cada endpoint protegido devolvía 401 con tokens válidos, porque el middleware de autorización corría antes de poblar la identidad. Reordenar a UseRouting, UseCors, UseAuthentication, UseAuthorization, MapControllers lo arregló, y mover UseExceptionHandler al principio convirtió una excepción no manejada en un middleware propio en una respuesta problem-details correcta.
Errores frecuentes
- Poner un middleware que modifica la respuesta después del endpoint, de modo que nunca la ve.
- Registrar el rate limiting después del trabajo caro que debía proteger.
- Añadir UseStaticFiles después de la autenticación y autenticar cada solicitud de imagen.
Una estructura útil para responder
Responde desde tu propia experiencia.
No memorices un guion: usa solo ejemplos que puedas explicar con honestidad en preguntas posteriores.
Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.