8.3 Locking Down Configuration Settings
All of the previous examples rely on the ability to override settings in machine.config with settings in the web.config file for an individual application. As mentioned earlier, you can also use a web.config file located in a child folder of an application to override settings in a parent web.config file. However, what if the application developer or the server administrator doesn't want certain settings to be overridden? No problem. The configuration system provides a special element, <location>, that serves this purpose handily.
The basic structure of the <location> element consists of the opening element tag with two attributes, path and allowOverride, followed by the elements to be locked down, and the closing element tag. For example:
<location path="pathtocontrol" allowOverride="True|False"> <!-- Settings to lock down --> </location>
The path attribute, which is optional when locking down configuration settings, is used to specify the application or filename to be controlled by the <location> element. If omitted, the <location> element's settings apply to all children of the configuration file in which it appears. Example 8-6 shows a <location> element which, when added to machine.config, requires all ASP.NET applications on the machine to use Windows authentication.
<configuration> <system.web> <location allowOverride="False"> <authentication mode="Windows"/> </location> </system.web> <configuration>
Note that the <location> element can also be used to configure settings for a child application, directory, or file from a parent configuration file. When used in this manner, the path attribute is required and the allowOverride attribute is optional.