在RouteConfig中,我如何忽略此“拒绝的URLScan”路径的路由

本文关键字:拒绝的 拒绝 URLScan 路由 路径 RouteConfig 何忽略 | 更新日期: 2023-09-27 17:56:54

我正在尝试将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 示例,但所有这些都与文件扩展名直接相关。在这种情况下,我不是要隔离文件扩展名,而是简单地忽略路径中包含"拒绝的 UrlScan"的请求。

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

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

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

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

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

在RouteConfig中,我如何忽略此“拒绝的URLScan”路径的路由

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

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