在RouteConfig中,我如何IgnoreRoute为此"拒绝了UrlScan"路径?

时间:2015-06-17 21:55:42

标签: c# asp.net asp.net-mvc asp.net-mvc-routing

我尝试将IgnoreRoute应用于包含"拒绝了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&#34 ;?的路线的正确语法是什么?如果您能提供答案并指出我通过示例解释语法的一些文档,我将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

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

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