我的 ASP.NET MVC Web 应用程序有 5 个区域。每个区域都有自己的 Views
文件夹,里面有自己的 Web.config
。这使得 6 个配置文件与应用程序根目录中的主要 Web.config
一起。这使得它有点难以管理。
据我所知,这些配置做了两件事(至少在默认情况下):
1.) 将 Razor 主机工厂设置为默认包含选定的命名空间。
2.) 通过使用 HttpNotFoundHandler
处理请求,阻止对 Views
文件夹中文件的直接访问。
所有这些 Web.config
文件中的代码对我来说几乎是相同的,在我看来这不是管理这些配置的好方法。如果我添加更多区域或更精细地组织我的代码,我最终可能会得到超过 5 个 Web.config
文件。为什么我需要这么多?一个还不够吗?
我的观点如下:
ad 1.) 不能将所有这些 namespace 都导入应用程序根 Web.config
文件中一次,或者导入到 _ViewStart.cshtml
文件?
ad 2.) 阻止对所有文件夹中的所有代码文件的访问然后使用相反的方法不是更有意义 -- 即更改其中包含静态文件的文件夹(例如Assets
文件夹)使用 StaticFileHandler
?原则上,对我来说,将允许 StaticFileHandler
读取的文件列入白名单似乎是一种更安全的方法,而不是指定哪些文件应由 HttpNotFoundHandler
处理。
这可行吗?我错过了什么吗?有没有其他人遇到过太多 Views
Web.config
文件的类似问题?
感谢您的回答。
最佳答案
只需将一个 web.config
文件放在 Areas 文件夹中,然后从 5 个区域中的每个区域中删除单独的 web.config
文件。
ASP.NET 中的配置文件基于继承原则运行。 MSDN 文章 - ASP.NET Configuration File Hierarchy and Inheritance
关于c# - ASP.NET MVC 中的一个 Web.config 而不是每个 Views 文件夹的多个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37761275/