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