Ich habe ein Legacy-Code-Problem, bei dem ich zufällige URLs unterstützen muss, als wären sie Anforderungen für die Homepage. Einige der URLs enthalten Zeichen, die den Fehler "Ein möglicherweise gefährlicher Request.Path-Wert wurde vom Client (&) erkannt" erzeugen . Die Site wurde mit ASP.Net MVC 3 (in C #) geschrieben und läuft unter IIS 7.5.
Hier ist eine Beispiel-URL ...
http://mywebsite.com/Test123/This_&_That
So habe ich meine Catch-All-Route eingerichtet (ich habe andere Routen, um bestimmte Seiten zu fangen) ...
routes.MapRoute(
"Default", // Route name
"{garb1}/{garb2}", // URL with parameters
new { controller = "Website", action = "Home", garb1 = UrlParameter.Optional, garb2 = UrlParameter.Optional } // Parameter defaults
);
Ich habe meiner web.config-Datei die folgenden Dinge hinzugefügt ...
<configuration>
<system.web>
<pages validateRequest="false" />
<httpRuntime requestValidationMode="2.0" />
</system.web>
<configuration>
Ich habe auch das ValidateInput-Attribut zu der Aktion hinzugefügt, die die URLs abfangen soll ...
public class WebsiteController : Controller
{
[ValidateInput(false)]
public ActionResult Home()
{
return View();
}
}
Aber ich bekomme immer noch den Fehler. Irgendwelche Ideen warum? Habe ich etwas verpasst? Im Moment laufe ich nur auf meinem lokalen Entwicklungsserver (ich habe diese Korrekturen in der Produktion noch nicht ausprobiert).