홈 페이지에 대한 요청 인 것처럼 임의의 URL을 지원해야하는 레거시 코드 문제가 있습니다. 일부 URL에는 "클라이언트에서 잠재적으로 위험한 Request.Path 값이 감지되었습니다 (&)" 오류를 생성하는 문자가 있습니다 . 이 사이트는 ASP.Net MVC 3 (C #)로 작성되었으며 IIS 7.5에서 실행됩니다.
다음은 URL의 예입니다.
http://mywebsite.com/Test123/This_&_That
포괄 루트 설정 방법은 다음과 같습니다 (특정 페이지를 잡을 다른 루트가 있습니다) ...
routes.MapRoute(
"Default", // Route name
"{garb1}/{garb2}", // URL with parameters
new { controller = "Website", action = "Home", garb1 = UrlParameter.Optional, garb2 = UrlParameter.Optional } // Parameter defaults
);
web.config 파일에 다음을 추가했습니다.
<configuration>
<system.web>
<pages validateRequest="false" />
<httpRuntime requestValidationMode="2.0" />
</system.web>
<configuration>
URL을 잡아야하는 액션에 ValidateInput 속성도 추가했습니다.
public class WebsiteController : Controller
{
[ValidateInput(false)]
public ActionResult Home()
{
return View();
}
}
하지만 여전히 오류가 발생합니다. 이유는 무엇입니까? 내가 뭐 놓친 거 없니? 지금은 로컬 개발 서버에서 실행 중입니다 (아직 프로덕션에서 이러한 수정을 시도하지 않았습니다).