Tengo algunos archivos en mi carpeta de contenido que no deseo que un usuario pueda descargar sin autorización. ¿Cómo evito que un usuario llegue al archivo escribiendo ... Content/{filename} en la barra de direcciones?Protección de carpetas en MVC
Respuesta
Hay un par de posibilidades. La primera de ellas consiste en el uso de la etiqueta <location>
en su web.config:
<location path="Content">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
Otra posibilidad es poner esos archivos dentro de una carpeta en la que nadie puede acceder (como la carpeta App_Data por ejemplo) y luego tener una acción de controlador que servirá aquellos archivos que se decorarán con el atributo [Authorize]
.
Bueno, una manera es tener fuera del contexto de IIS, así que en vez de tenerlos bajo C:\inetpub\wwwroot
cambio a algo así como C:\temp\files
.
en su base de datos tienen un GUID asociado con el nombre del documento y usan el GUID para mostrar el enlace al archivo.
en su acción de controlador, usted simplemente aceptaría el GUID, obtendrá el nombre del archivo y luego servirá el archivo en su respuesta.
no funciona para mí.
<configuration>
<appSettings>
...
</appSettings>
<system.web>
...
</system.web>
<system.webServer>
...
</system.webServer>
<location path="Content">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
</configuration>
Paso los MVC 4.0 aplicación, inicio de sesión y cierre de sesión, no se puede acceder a cualquier página de la aplicación, pero todavía se puede acceder al archivo de enlace directo como
http://localhost:80966/Content/Files/home.jpg
- 1. Protección de un sitio ASP.Net MVC
- 2. ASP.NET MVC estructura de carpetas y NuGet
- 3. ASP.net mvc 2 carpeta de carpetas estructura
- 4. Ruta de MVC de ASP.NET personalizada en carpetas anidadas
- 5. Cómo probar Carpetas de modelo personalizadas en ASP.NET MVC?
- 6. ASP.NET MVC - Múltiples modelos en carpetas de formularios y modelos
- 7. Una estructura de carpetas ideal para .NET MVC
- 8. Protección JKS
- 9. Pregunta de protección CSRF
- 10. Protección de servicios web
- 11. node.js código de protección
- 12. asp.net protección de medios
- 13. Protección de SignalR Calls
- 14. Protección CSRF en solicitudes AJAX usando MVC2
- 15. Protección de claves de cifrado en C#
- 16. Protección de secuestro de sesión en ASP.NET
- 17. Nombres de funciones de protección en R
- 18. ¿Hay protección de memoria en las GPU
- 19. Protección contra inyección de SQL en ColdFusion
- 20. Código de seguridad/protección en JavaScript
- 21. Protección de código fuente en Microsoft
- 22. Protección de un servicio web
- 23. Protección de software mediante cifrado
- 24. PHP - Protección de descargas digitales
- 25. Protección contra la automatización
- 26. Protección de la lista de verificación de la aplicación ASP.NET MVC
- 27. Protección de hilo atascado WebLogic
- 28. Protección GWT y XSRF
- 29. protección de adobe air apps
- 30. Trampas de protección contra copia
¿Dónde esta se encuentra en la web. config? – user517406
Dentro del elemento '' y fuera de ''. Está en la raíz. –
Bien, gracias, ¿no funcionó de inmediato como debería ser no :) –
user517406