相关疑难解决方法(0)

获取"从客户端(&)检测到潜在危险的Request.Path值"

我有一个遗留代码问题,需要我支持随机网址,就好像它们是对主页的请求一样.某些URL中包含的字符会生成错误"从客户端(&)检测到潜在危险的Request.Path值".该站点使用ASP.Net MVC 3(在C#中)编写,并在IIS 7.5上运行.

这是一个示例URL ...

http://mywebsite.com/Test123/This_&_That
Run Code Online (Sandbox Code Playgroud)

这是我如何设置我的全部路线(我有其他路线来捕捉特定页面)......

routes.MapRoute(
    "Default", // Route name
    "{garb1}/{garb2}", // URL with parameters
    new { controller = "Website", action = "Home", garb1 = UrlParameter.Optional, garb2 = UrlParameter.Optional } // Parameter defaults
);
Run Code Online (Sandbox Code Playgroud)

我在web.config文件中添加了以下内容...

<configuration>
    <system.web>
        <pages validateRequest="false" />
        <httpRuntime requestValidationMode="2.0" />
    </system.web>
<configuration>
Run Code Online (Sandbox Code Playgroud)

我还在应该捕获URL的操作中添加了ValidateInput属性...

public class WebsiteController : Controller
{
    [ValidateInput(false)]
    public ActionResult Home()
    {
        return View();
    }
}
Run Code Online (Sandbox Code Playgroud)

但我仍然得到错误.有什么想法吗?我错过了什么?现在我只是在我的本地开发服务器上运行(我还没有在生产中尝试过这些修复).

asp.net-mvc asp.net-mvc-3

113
推荐指数
2
解决办法
18万
查看次数

URL编码冒号在400 Bad Request中解析

为什么这个网址会在400中解决 - 错误请求?

HTTP://本地主机:2785/API /股票/ Web.App.QuotesReaders /搜索= SE%3Aabb

我的环境是Visual Studio 2010,MVC 4和使用的控制器是WebApiController.

%3A是URL编码的冒号.

这有一些原因:

HTTP://本地主机:2785/API /股票的className = Web.App.QuotesReaders&搜索= SE%3Aabb

...这意味着,我无法在global.asax.cs中指定此路由:

/api/ticker/{className}/{search}
Run Code Online (Sandbox Code Playgroud)

......也不是......

/api/ticker/{className}/search={search}
Run Code Online (Sandbox Code Playgroud)

... 但是这个 ...

/api/ticker
Run Code Online (Sandbox Code Playgroud)

欲了解更多信息,请访问:http://www.hanselman.com/blog/ExperimentsInWackinessAllowingPercentsAnglebracketsAndOtherNaughtyThingsInTheASPNETIISRequestURL.aspx

asp.net urlencode asp.net-mvc-4 asp.net-web-api

5
推荐指数
1
解决办法
6427
查看次数