默认时,子目录中的配置文件会覆盖并扩展父目录配置文件中定义的配置。在应用程序被托管的情况下,管理员通常需要对网站的安全配置进行锁定或设置。比如,管理员可能需要对被托管应用程序的沙箱安全配置进行锁定以减少系统被攻击的风险。
管理员可以通过在 <location>
指令中添加 allowOverride="false"
参数的方式对配置进行锁定。该参数会告诉配置系统,只要低级别的配置文件尝试对任何定义在 <location>
指令中的配置进行覆盖时就必须引发一个错误。
下例配置文件(既可以在主系统级别也可以在网站级别中进行保存)针对两个不同的 ASP.NET 应用程序(application1
和 application2
)的可信级别进行锁定。还有一些其他可能用于锁定的参数,如 lockItem
、lockAttributes
,等等。
<configuration> <location path="application1" allowOverride="false"> <system.web> <trust level="High"/> </system.web> </location> <location path="application2" allowOverride="false"> <system.web> <trust level="Medium"/> </system.web> </location> </configuration>
任何尝试对上例配置进行覆盖的操作都将产生配置系统的错误。如下所示:
<configuration> <system.web> <trust level="Full"/> </system.web> </configuration>