ホームページのリクエストであるかのようにランダムな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();
}
}
しかし、まだエラーが発生します。何かアイデアはありますか?私は何か見落としてますか?現在、私は自分のローカル開発サーバーで実行しています(これらの修正はまだ実稼働環境で試していません)。