The configSections element specifies configuration section and handler declarations. This is required because ASP.NET makes no presumptions about how to handle settings within a configuration file. Instead, ASP.NET delegates the processing of configuration data to configuration section handlers.
Each section element identifies a configuration section or element and the associated ConfigurationSection-derived class that handles the configuration section or element. The section elements can be logically grouped in sectionGroup elements to organize the section elements and to avoid naming conflicts. The section and sectionGroup elements are contained in the configSections element.
If the configSections element is in a configuration file, the configSections element must be the first child element of the configuration element.
Default Configuration
Configuration sections for the .NET configuration elements are defined in the Machine.config file and are too numerous to list here. The following excerpt from the Machine.config file defines the configuration section handler for the authentication element of the system.web section. Then, configuration settings are defined for the authentication element.
If a configuration section handler is not associated with a configuration element, ASP.NET issues the server error, "Unrecognized configuration section element_name."
<configuration>
<configSections>
<sectionGroup name="system.web" type="System.Web.Configuration.SystemWebSectionGroup, System.Web, Version=%ASSEMBLY_VERSION%, Culture=neutral, PublicKeyToken=%MICROSOFT_PUBLICKEY%">
<section name="authentication" type="System.Web.Configuration.AuthenticationSection, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication" />
<!-- Other system.web sections -->
</sectionGroup>
<!-- Other configuration sections -->
</configSections>
<system.web>
<authentication mode="Windows">
<forms name=".ASPXAUTH"
loginUrl="login.aspx" defaultUrl="default.aspx"
protection="All"
timeout="30"
path="/"
requireSSL="False"
slidingExpiration="True"
cookieless="UseCookies"
domain=""
enableCrossAppRedirects="False">
<credentials passwordFormat="SHA1" />
</forms>
<passport redirectUrl="internal" />
</authentication>
<!-- Other system.web elements -->
</system.web>
<!-- Other configuration settings -->
</configuration>