es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Descargar imagen Asp.Net 5 MVC a través de action.

Tengo un requisito para controlar la capacidad de un cliente para descargar imágenes/archivos en función de quiénes son. Llamamos a una acción con un parámetro que me permite insertar datos de la sesión para finalizar una ruta, sin poner la ruta real en el cliente. Luego devolvemos un FileActionResult desde el controlador.

Estaba funcionando. Si encontrábamos la imagen, podíamos crear un flujo y servir el archivo, y si no podíamos, devolvíamos una imagen por defecto. Pero descubrimos que fácilmente podíamos encontrarnos en una situación en la que el flujo estaba abierto cuando se hacía una nueva solicitud, lo que resultaba en un error. Esto podía convertirse en un problema en el que incluso la imagen por defecto no se podía descargar.

He buscado mucho y hemos probado varios métodos, pero estos conflictos aún pueden ocurrir. Empecé a pensar que tal vez esto no es un problema de entrada/salida, sino más bien un problema de “estoy tratando de hacer algo mal”.

¿Hay alguna manera de interceptar una llamada a un recurso estático y luego adaptar la ruta si está buscando en una ubicación específica, sin imponer la regla en todas las solicitudes?

Lo más cercano que he encontrado es al crear un View Expander, donde puedo reinterpretar la ruta de un recurso llamado, pero no es lo mismo. Uno está compilado y el otro no lo está.

No tengo ningún código que mostrar porque el enfoque es incierto y desconocido. Las búsquedas han sido difíciles porque los términos chocan con soluciones bien conocidas para temas que no se aplican.

Espero que alguien que sea más conocedor pueda indicarme un método que trate los archivos en una carpeta segura como si fueran recursos estáticos una vez que haya determinado que están autorizados para acceder al recurso estático.

Estoy usando Identity, pero no extiendo esa identidad al acceso del sistema, ni lo haré. El único usuario permitido puede ser IISUsr, según mi cliente.

¡Cualquier ayuda sería muy apreciada!

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece como si estuvieras buscando una manera de interceptar una llamada para un recurso estático y adaptar la ruta si se está buscando en una ubicación específica, sin imponer la regla en todas las solicitudes. Has intentado crear un expansor de vista, pero no es lo mismo que estás buscando. Estás utilizando Identity, pero no extiendes esa identidad para el acceso al sistema.

    ¿Has considerado usar un middleware personalizado para interceptar la solicitud y verificar si el usuario está autorizado para acceder al recurso estático? Podrías devolver el archivo si el usuario está autorizado, o una imagen predeterminada si no lo está.

Comments are closed.