Tôi đã gặp sự cố mã kế thừa yêu cầu tôi hỗ trợ các url ngẫu nhiên như thể chúng là yêu cầu cho trang chủ. Một số URL có các ký tự trong đó tạo ra lỗi "Giá trị Request.Path tiềm ẩn nguy hiểm đã được phát hiện từ máy khách (&)" . Trang web được viết bằng ASP.Net MVC 3 (trong C #) và đang chạy trên IIS 7.5.
Đây là một URL mẫu ...
http://mywebsite.com/Test123/This_&_That
Đây là cách tôi thiết lập lộ trình nhận toàn bộ (tôi có các lộ trình khác để bắt các trang cụ thể) ...
routes.MapRoute(
"Default", // Route name
"{garb1}/{garb2}", // URL with parameters
new { controller = "Website", action = "Home", garb1 = UrlParameter.Optional, garb2 = UrlParameter.Optional } // Parameter defaults
);
Tôi đã thêm những thứ sau vào tệp web.config của mình ...
<configuration>
<system.web>
<pages validateRequest="false" />
<httpRuntime requestValidationMode="2.0" />
</system.web>
<configuration>
Tôi cũng đã thêm thuộc tính ValidateInput vào hành động sẽ bắt các url ...
public class WebsiteController : Controller
{
[ValidateInput(false)]
public ActionResult Home()
{
return View();
}
}
Nhưng tôi vẫn nhận được lỗi. Bất kỳ ý tưởng tại sao? Tôi đã bỏ lỡ điều gì đó? Hiện tại, tôi chỉ đang chạy trên máy chủ nhà phát triển cục bộ của mình (tôi chưa thử các bản sửa lỗi này trong phiên bản sản xuất).