Tengo un problema de código heredado que requiere que admita URL aleatorias como si fueran solicitudes para la página de inicio. Algunas de las URL tienen caracteres que generan el error "Se detectó un valor Request.Path potencialmente peligroso del cliente (&)" . El sitio está escrito con ASP.Net MVC 3 (en C #) y se ejecuta en IIS 7.5.
Aquí hay una URL de ejemplo ...
http://mywebsite.com/Test123/This_&_That
Así es como tengo la configuración de mi ruta general (tengo otras rutas para capturar páginas específicas) ...
routes.MapRoute(
"Default", // Route name
"{garb1}/{garb2}", // URL with parameters
new { controller = "Website", action = "Home", garb1 = UrlParameter.Optional, garb2 = UrlParameter.Optional } // Parameter defaults
);
He agregado las siguientes cosas a mi archivo web.config ...
<configuration>
<system.web>
<pages validateRequest="false" />
<httpRuntime requestValidationMode="2.0" />
</system.web>
<configuration>
También agregué el atributo ValidateInput a la acción que debería capturar las URL ...
public class WebsiteController : Controller
{
[ValidateInput(false)]
public ActionResult Home()
{
return View();
}
}
Pero sigo recibiendo el error. ¿Alguna idea de por qué? ¿Me he perdido algo? En este momento solo estoy corriendo en mi servidor de desarrollo local (todavía no he probado estas correcciones en producción).
fuente
Respuestas:
Si bien puede probar estas configuraciones en el archivo de configuración
Evitaría usar caracteres como '&' en la ruta de la URL reemplazándolos con guiones bajos.
fuente
Me he enfrentado a este tipo de error. para llamar a una función de razor.
resuelve eso cambiando la línea
de
a
donde está mi route.config
fuente
Si desea permitir etiquetas Html solo para algunos cuadros de texto en mvc
Puedes hacer una cosa
en el controlador
fuente
Recibíamos este mismo error en Fiddler cuando intentábamos averiguar por qué nuestro visor de mapas Silverlight ArcGIS no estaba cargando el mapa. En nuestro caso, fue un error tipográfico en la URL del código. Había un signo igual allí por alguna razón.
http: = // someurltosome / awesome / place en
lugar de
http: // someurltosome / awesome / place
Después de quitar ese signo igual funcionó muy bien (por supuesto).
fuente
Compruebe que las siguientes líneas están presentes en su archivo web.config
<system.web> <httpRuntime requestPathInvalidCharacters="" /> </system.web>
fuente