Le comportement d'une application ASP.NET est déterminé par différents paramètres dans les deux fichiers de configuration suivants :
machine.config
web.config
Le fichier machine.config contient des valeurs par défaut et spécifiques à la machine pour tous les paramètres pris en charge. La machine est configurée par l'administrateur système et les applications ne peuvent généralement pas accéder à ce fichier.
Toutefois, une application peut remplacer la valeur par défaut en créant un fichier web.config dans son dossier racine. Le fichier web.config est un sous-ensemble du fichier machine.config.
Si l'application contient des sous-répertoires, elle peut définir un fichier web.config pour chaque dossier. La portée de chaque profil est déterminée de manière hiérarchique de haut en bas.
Tout fichier web.config peut étendre, restreindre ou remplacer localement tous les paramètres définis ci-dessus.
Visual Studio génère un fichier web.config par défaut pour chaque projet. L'application peut être exécutée sans fichier web.config, cependant, nous ne pouvons pas déboguer une application sans fichier web.config.
L'image suivante montre un exemple de l'Explorateur de solutions utilisé dans le didacticiel des services Web :
Dans cette application, il existe deux fichiers web.config correspondant au service web et au site web qui appelle le service web.
L'élément de configuration dans le fichier web.config sert de nœud racine. Les informations contenues dans cet élément sont divisées en deux zones principales : la zone de déclaration du gestionnaire de section de configuration et la zone de paramètres de la section de configuration.
L'extrait de code suivant montre la syntaxe de base d'un fichier de configuration :
<configuration> <!-- Zone de déclaration du gestionnaire de section de configuration. --> <configSections> <section name="section1" type="section1Handler" /> <section name="section2" type="section2Handler" /> </ configSections> <!-- Zone de paramètres de la section de configuration. --> <section1> <s1Setting1attribut1="attr1" /> </section1> <section2> <s2Setting1attribut1="attr1" /> </section2> <system.web> <mode d'authentification="Windows" /> </system.web> </configuration>
Les déclarations du gestionnaire de section de configuration sont contenues dans des balises. Chaque gestionnaire de configuration spécifie le nom de la section de configuration et est contenu dans un fichier qui fournit certaines données de configuration. Il a la syntaxe de base suivante :
<configSections> <section /> <sectionGroup /> <remove /> <clear/> </configSections>
Il comporte les éléments suivants :
Effacer : toutes les références aux sections et aux groupes de sections hérités.
Supprimer - Supprime une section référencée héritée et un groupe de sections.
Section - Définit l'association entre les gestionnaires de section de configuration et les éléments de configuration.
Groupe de sections - Il définit l'association entre un gestionnaire de section de configuration et une section de configuration.
Les paramètres d'application permettent le stockage de paires nom-valeur pour les applications avec accès en lecture seule. Par exemple, vous pouvez définir un paramètre d'application personnalisé comme suit :
<configuration> <appSettings> <add key="Nom de l'application" value="MonApplication" /> </appSettings> </configuration>
Par exemple, vous pouvez également stocker la paire de données de numéro ISBN et de nom d'un livre :
<configuration> <appSettings> <add key="appISBN" value="0-273-68726-3" /> <add key="appBook" value="Corporate Finance" /> </appSettings> </configuration>
La chaîne de connexion affiche la chaîne de connexion à la base de données qui peut être utilisée pour le site Web. Par exemple:
<connectionStrings> <add name="ASPDotNetStepByStepConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=E:\projectsdatacaching / datacachingApp_DataASPDotNetStepByStep.mdb" supplierName="System.Data. OleDb" /> <add name="booksConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Source de données=C: databindingApp_Databooks.mdb" supplierName="System.Data.OleDb" /> </connectionStrings>
L'élément system.web spécifie l'élément racine de la section de configuration ASP.NET et contient des éléments de configuration qui configurent l'application Web ASP.NET et contrôlent le fonctionnement de l'application.
Il contrôle la plupart des éléments de configuration les plus courants qui doivent être ajustés. La syntaxe de base de cet élément est la suivante :
<system.web> <anonymousIdentification> <authentification> <autorisation> <browserCaps> <caching> <clientTarget> <compilation> <customErrors> <déploiement> <deviceFilters> <globalisation> <healthMonitoring> <hostingEnvironment> <httpCookies> <httpHandlers> <httpModules> <httpRuntime> <identité> <machineKey> <adhésion> <mobileControls> <pages> <processModel> <profile> <roleManager> <securityPolicy> <sessionPageState> <sessionState> <siteMap> <trace> <trust> <urlMappings> <webControls> <webParts> <webServices> <xhtmlConformance > </system.web>
Le tableau suivant fournit une brève description des sous-éléments de certains éléments system.web couramment utilisés :
Ceci est utilisé pour identifier les utilisateurs non authentifiés lorsqu'une confirmation de l'identité de l'utilisateur est requise.
Il est pris en charge par l'autorisation de configuration. La syntaxe de base est :
<autorisation> <autoriser .../> <refuser .../> </autorisation>
Il configure les paramètres du cache. La syntaxe de base est :
<caching> <cache>...</cache> <outputCache>...</outputCache> <outputCacheSettings>...</outputCacheSettings> <sqlCacheDependency>...</sqlCacheDependency> </caching>
Il définit un message d'erreur personnalisé. La syntaxe de base est :
<customErrors defaultRedirect="url" mode="On|Off|RemoteOnly"> <erreur ./> </customErrors>.
Il définit les paramètres de configuration utilisés pour le déploiement. La syntaxe de base est la suivante :
<déploiement retail="true|false" />
Il définit les paramètres de configuration de l'environnement d'hébergement. La syntaxe de base est la suivante :
<hostingEnvironment ralentiTimeout="HH:MM:SS" shadowCopyBinAssemblies="true|false" shutdownTimeout="number" urlMetadataSlidingExpiration="HH:MM:SS" />
Il permet de configurer le mécanisme d'authentification de l'application. La syntaxe de base est la suivante :
<identity impersonate="true|false" userName="domainusername" password="<mot de passe sécurisé>"/>
Il est utilisé pour configurer la clé utilisée pour le cookie d'authentification par formulaire pour crypter et déchiffrer les données.
Il permet également de configurer des clés d'authentification pour effectuer des contrôles d'authentification des messages sur les données d'état d'affichage et les tickets d'authentification par formulaires. La syntaxe de base est la suivante :
<machineKey validationKey="AutoGenerate,IsolateApps" [String] decryptionKey="AutoGenerate,IsolateApps" [String] validation="HMACSHA256" [SHA1 | 3DES | HMACSHA384 | " [Auto | DES | 3DES | AES | alg:nom_algorithme] />
Il est utilisé pour configurer la gestion et authentifier les paramètres des utilisateurs. La syntaxe de base est la suivante :
<membership defaultProvider="nom du fournisseur" userIsOnlineTimeWindow="nombre de minutes" hashAlgorithmType="SHA1"> <providers>...</providers> </membership>
Il fournit une configuration spécifique des pages Web. La syntaxe de base est la suivante :
<pages asyncTimeout="numéro" autoEventWireup="[True|False]" buffer="[True|False]" clientIDMode="[AutoID|Predictable|Static]" compilationMode="[Always|Auto|Jamais]" controlRenderingCompatibilityVersion=" [3.5|4.0]" activateEventValidation="[True|False]" EnableSessionState="[True|False|ReadOnly]" EnableViewState="[True|False]" EnableViewStateMac="[True|False]" sustainScrollPositionOnPostBack="[True|False]" masterPageFile="chemin du fichier" maxPageStateFieldLength="number" pageBaseType ="nom du type, assemblage" pageParserFilterType="string" smartNavigation="[True|False]" styleSheetTheme="string" theme="string" userControlBaseType="typename" validateRequest="[True|False]" viewStateEncryptionMode="[Always|Auto|Jamais]" > <contrôles>.. .</controls> <namespaces>...</namespaces> <tagMapping>...</tagMapping> <ignoreDeviceFilters>...</ignoreDeviceFilters> </pages>
Il est utilisé pour configurer les paramètres du profil utilisateur. La syntaxe de base est la suivante :
<profile activé="true|false" hérite="référence de type entièrement qualifiée" automatiqueSaveEnabled="true|false" defaultProvider="nom du fournisseur"> <propriétés>...</propriétés> <providers>...</providers > </profil>
Configurez les informations de paramètres pour les rôles d'utilisateur. La syntaxe de base est la suivante :
<roleManager cacheRolesInCookie="true|false" cookieName="name" cookiePath="/" cookieProtection="Tous|Chiffrement|Validation|Aucun" cookieRequireSSL="true|false " cookieSlidingExpiration="true|false " cookieTimeout="nombre de minutes " createPersistentCookie="true|false" defaultProvider="nom du fournisseur" domain="domaine du cookie"> activé="true|false" maxCachedResults="nombre maximum de noms de rôles mis en cache" <providers>...</providers> </roleManager>
Utilisé pour configurer les politiques de sécurité. La syntaxe de base est la suivante :
<securityPolicy> <trustLevel /> </securityPolicy>
Il définit des mappages pour masquer les URL d'origine et fournir des URL plus conviviales. La syntaxe de base est la suivante :
<urlMappings activé="true|false"> <add.../> <clear /> <remove.../> </urlMappings>
Il fournit le nom de l'emplacement partagé pour les scripts clients. La syntaxe de base est la suivante :
<webControls clientScriptsLocation="String" />
Utilisé pour configurer les services Web.