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.

Practica esta respuesta con MiraHint

Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.

Descargar MiraHint
Preguntas de entrevista para Desarrollador .NET