最佳答案
我有一个遗留代码问题,它要求我支持随机 URL,就好像它们是对主页的请求一样。一些 URL 中包含生成错误 "A potentially dangerous Request.Path value was detected from the client (&)"的字符。该站点是用 ASP.Net MVC 3(C #)编写的,运行在 IIS 7.5上。
这里有一个例子 URL..。
http://mywebsite.example/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>
我还将 ValidateInput 属性添加到应该捕获 URL 的操作中..。
public class WebsiteController : Controller
{
[ValidateInput(false)]
public ActionResult Home()
{
return View();
}
}
但我还是会出错。知道为什么吗?我错过什么了吗?现在我只是在本地开发服务器上运行(我还没有在生产环境中尝试过这些修复)。