Protección de imágenes en ASP.NET MVC (w / encargo RouteHandler)
-
30-09-2019 - |
Pregunta
He creado una costumbre RouteHandler para las imágenes que desea proteger. Mi RouteHandler simplemente toma una nueva ruta (gráficos / {nombre del archivo}) y realiza una búsqueda de la verdadera ruta del archivo, establece el tipo MIME, y sirve para arriba. Eso funciona bien. ( http: / /www.mikesdotnetting.com/Article/126/ASP.NET-MVC-Prevent-Image-Leeching-with-a-Custom-RouteHandler )
Lo que quería hacer a continuación era para hacer una verificación dentro de mi controlador personalizado para una variable de sesión que iba a establecer principios para asegurarse de que la persona que intenta ver la imagen tenía permiso para hacerlo.
Básicamente, pasarían un inicio de sesión (ingresa un código), que establecería una variable de sesión que iba a buscar en la costumbre RouteHandler.
Mi problema es que me parece que no puede conseguir en los datos de la sesión desde el interior de la costumbre RouteHandler.
Por último, mi pregunta es: ¿Cómo puedo configurar los datos en un controlador y tenerlo disponible para mí desde el interior de una costumbre RouteHandler en una solicitud posterior
Solución
En primer lugar, desde el RequestContext aprobada en el método GetHttpHandler, no se puede acceder a través de la Sesión requestContext.HttpContext.Session
? No estoy seguro, pude ver que esto no funciona de forma predeterminada, ya que es tan temprano en la tubería.
Si no es así, siempre se puede mover fácilmente la lógica de control de la sesión en el controlador mediante la adición de la IRequiresSessionState interfaz a su manejador.