El middleware ya no se aplaza al punto de conexión con delegado de solicitud NULL
Tal y como se detalla en https://github.com/dotnet/aspnetcore/issues/42413, el middleware de servicio de archivos (DefaultFilesMiddleware
, DirectoryBrowserMiddleware
y StaticFileMiddleware
) se ha actualizado para que deje de no realizar acciones (es decir, aplazar al siguiente middleware de la canalización) cuando haya un punto de conexión activo con delegado de solicitud null
.
Versión introducida
ASP.NET Core 7.0
Comportamiento anterior
Anteriormente, si la solicitud actual tenía un punto de conexión activo, es decir, HttpContext.GetEndpoint() != null
, el middleware de servicio de archivos no realizaba ninguna acción y simplemente delegaba al siguiente middleware de la canalización de solicitudes.
Comportamiento nuevo
El middleware de servicio de archivos ahora solo dejará de realizar acciones si hay un punto de conexión activo y su valor de propiedad RequestDelegate
no es null
, es decir, HttpContext.GetEndpoint()?.RequestDelegate is not null
.
Tipo de cambio importante
Este cambio afecta a la compatibilidad binaria.
Motivo del cambio
Este cambio permite que los puntos de conexión compartan metadatos con middleware compatible con ellos, mientras permiten que otro middleware que de otro modo delegaría, también funcione. Los puntos de conexión pueden estar activos en la solicitud para establecer y compartir metadatos con middleware que tengan en cuenta el punto de conexión para que realicen su función prevista. Otro middleware que antes aplazaba su comportamiento cuando un punto de conexión estaba activo, por ejemplo, el middleware de servicio de archivos, también puede funcionar.
Por ejemplo, un punto de conexión con un delegado de solicitud null
que contenga metadatos de autorización se puede establecer como punto de conexión activo para una solicitud. Esto hace que AuthorizationMiddleware
aplique los requisitos de autorización, que, si se cumplen, permitirían a StaticFileMiddleware
atender los archivos solicitados.
Acción recomendada
Si establece un punto de conexión activo en la solicitud para suprimir el comportamiento del middleware de servicio de archivos, asegúrese de que el punto de conexión tiene un valor distinto de NULL establecido para su propiedad RequestDelegate
.
API afectadas
IApplicationBuilder.UseStaticFiles()
IApplicationBuilder.UseDefaultFiles()
IApplicationBuilder.UseDirectoryBrowser()
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de