Obteniendo “Se detectó un valor Request.Path potencialmente peligroso desde el cliente (&)”

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 desde el 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 mi configuración de ruta catch-all (tengo otras rutas para atrapar 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 …

       

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? Ahora mismo estoy ejecutando mi servidor de desarrollo local (todavía no he probado estas soluciones en producción).

Si bien puedes probar estas configuraciones en el archivo de configuración

     

Evitaría usar caracteres como ‘&’ en la ruta de URL reemplazándolos con guiones bajos.

Me he enfrentado a este tipo de error. para llamar a una función de la afeitadora.

 public ActionResult EditorAjax(int id, int? jobId, string type = ""){} 

resolver eso cambiando la línea

de

  

a

  

donde mi route.config es

 routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = UrlParameter.Optional }, new string[] { "RPMS.Controllers" } // Parameter defaults ); 

Si desea permitir tags Html solo para pocos cuadros de texto en mvc

Puedes hacer una cosa

en el controlador

  [ValidateInput(false)] public ActionResult CreateNewHtml() //view { return View(); } [ValidateInput(false)] [HttpPost] public ActionResult CreateNewHtml(cbs obj)//view cbs is database class { repo.AddHtml(obj); return View(); } 

Estábamos obteniendo el mismo error en Fiddler al tratar de descubrir por qué nuestro visor de mapas ArcGIS de Silverlight 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 sacar ese signo igual, funcionó bien (por supuesto).