在 RouteConfig 中,如何忽略此 "Rejected-By-UrlScan" 路径的路由?

In RouteConfig, how can I IgnoreRoute for this "Rejected-By-UrlScan" path?

我正在尝试将 IgnoreRoute 应用于包含 "Rejected-By-UrlScan" 的路径,但不理解语法。此处的 MSDN 文档未提供示例。 https://msdn.microsoft.com/en-us/library/system.web.mvc.routecollectionextensions.ignoreroute(v=vs.118).aspx

这是我正在处理的示例路径:

http://example.com/Rejected-By-UrlScan?~/Content/fonts/glyphicons-halflings-regular.woff2

这些是我挑选的一些 IgnoreRoute 示例,但所有这些都与文件扩展名直接相关。在这种情况下,我不是要隔离文件扩展名,而是简单地忽略路径中包含 "Rejected-By-UrlScan" 的请求。

routes.IgnoreRoute("{*allaspx}", new { allaspx = @".*\.aspx(/.*)?" });
routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });
routes.IgnoreRoute("{*robotstxt}", new { robotstxt = @"(.*/)?robots.txt(/.*)?" });

我正在处理的网站记录异常。目前,当出现 Rejected-By-UrlScan 路径时,这是被记录的异常:

System.Web.HttpException: The controller for path '/Rejected-By-UrlScan' was not found or does not implement IController.

现在,我可以扩展 Global.asax 中的 Application_Error 事件以忽略包含文本 "Rejected-By-UrlScan" 的异常。但我宁愿不通过简单地添加规则来首先抛出异常。

忽略包含 "Rejected-By-UrlScan" 的路由的正确语法是什么?如果您能提供答案并指出一些用示例解释语法的文档,我将不胜感激。谢谢。

我问你的问题是你忽略它之后你想做什么。我们忽略静态文件路径的原因是为了避免路由模块处理静态文件,例如 favicon.ico,而是正常的 asp.net 请求过程将继续进行。以下代码将忽略它,但正常的 asp.net 请求将导致 404.

routes.IgnoreRoute("{reject}", new { reject = @"(.*/)?Rejected-By-UrlScan(/.)?" })