Rastgele URL'leri ana sayfa için isteklermiş gibi desteklememi gerektiren eski bir kod sorunum var. Bazı URL'lerde "İstemciden potansiyel olarak tehlikeli bir Request.Path değeri algılandı (&)" hatasını oluşturan karakterler var . Site ASP.Net MVC 3 (C # ile) ile yazılmıştır ve IIS 7.5 üzerinde çalışmaktadır.
İşte örnek bir URL ...
http://mywebsite.com/Test123/This_&_That
Tümünü yakalama rota kurulumumu şu şekilde yaptım (belirli sayfaları yakalamak için başka rotalarım var) ...
routes.MapRoute(
"Default", // Route name
"{garb1}/{garb2}", // URL with parameters
new { controller = "Website", action = "Home", garb1 = UrlParameter.Optional, garb2 = UrlParameter.Optional } // Parameter defaults
);
Aşağıdaki şeyleri web.config dosyama ekledim ...
<configuration>
<system.web>
<pages validateRequest="false" />
<httpRuntime requestValidationMode="2.0" />
</system.web>
<configuration>
Ayrıca, URL'leri yakalaması gereken eyleme ValidateInput özniteliğini ekledim ...
public class WebsiteController : Controller
{
[ValidateInput(false)]
public ActionResult Home()
{
return View();
}
}
Ama yine de hatayı alıyorum. Herhangi bir fikriniz neden? Bir şey mi kaçırdım? Şu anda yalnızca yerel geliştirme sunucumda çalışıyorum (bu düzeltmeleri henüz üretimde denemedim).