如何在ASP.NET MVC中拥有一个文件扩展名会被请求筛选阻止的路由

本文关键字:请求 筛选 路由 扩展名 文件 ASP NET MVC 有一个 拥有 | 更新日期: 2023-09-27 18:20:01

我有一条基本上看起来像这样的路线:

Foo/{id}/Files/{*path}

我希望它匹配一个URL,例如:

http://mysite/Foo/Bar/Files/Baz.cs

但是,我收到一个HTTP 404.7错误,上面写着"请求筛选模块配置为拒绝文件扩展名。"我可以通过修改web.config从请求筛选中删除文件扩展名,但我不希望我的源代码可见。我应该如何设置?

如何在ASP.NET MVC中拥有一个文件扩展名会被请求筛选阻止的路由

让它工作的唯一方法是通过ASP.NET 4.0中的relatedUrlToFileSystemMapping设置。你可以在这里阅读更多:

  • http://haacked.com/archive/2010/04/29/allowing-reserved-filenames-in-URLs.aspx

如果文件的路径与您想要的URL不匹配,您可以执行以下操作:

  1. 在web.config中将保存源文件的文件夹标记为拒绝所有人使用(例如/SourceCode-dir)

  2. 允许请求过滤模块中的.cs扩展