默认时,子目录中的 ASP.NET 配置文件会对被声明在父配置文件中的配置设定进行覆盖和扩展。在应用程序托管环境中,你可能需要对 ASP.NET 应用程序的某些配置进行锁定以防止被低级别配置所更改。例如,你可以锁定被托管应用程序的安全设定,以防止管理员在安全设定中做出无意的更改。
要锁定 ASP.NET 配置文件(Web.config 文件)中的配置设定,你需要在 location
元素中添加值为 false
的 allowOverrride
参数。然后才可以在 location
元素中定义需要锁定的配置段。如果另一个配置文件尝试对任何一个被定义在已锁定 location
元素中的配置段进行覆盖,ASP.NET 将会抛出一个异常。
使用包含参数 allowOverride="false"
的 location
元素可以对整个配置段进行锁定。你也可以使用 lockItem
, lockElements
, lockAttributes
, lockAllAttributesExcept
, 和 lockAllElementsExcept
参数分别对配置元素和参数集进行单独锁定。
实例
下例代码实例显示了 Web.config 文件中的部分内容,该文件锁定了两个不同的 ASP.NET 应用程序的可信任级别:application1 和 application2。任何尝试对可信任配置段设定进行的覆盖操作都将引发一个配置系统错误。
<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>