Partager via


Validation <validation>

Vue d’ensemble

L’élément <validation> configure Internet Information Services (IIS) 7 pour détecter si une application ASP.NET configurée pour s’exécuter en mode .NET classique nécessite une modification pour fonctionner correctement en mode intégré.

IIS génère un message d’erreur de migration si l’attribut validateIntegratedModeConfiguration est défini sur true et que l’une des conditions suivantes est également vrai :

  • Votre application définit une section <httpModules> dans le fichier Web.config associé.

    En mode intégré dans IIS 7, les modules ASP.NET sont spécifiés avec des modules natifs dans une section <modules> unifiée sous <system.webServer>.

  • Votre application définit une section <httpHandlers> dans le fichier Web.config associé.

    En mode intégré dans IIS 7, les mappages de gestionnaires ASP.NET sont spécifiés dans une section <handlers> unifiée sous <system.webServer>. La section <handlers> remplace à la fois les configurations des mappages <httpHandlers> ASP.NET et de processeurs de script IIS, qui été requises pour configurer un mappage de gestionnaires ASP.NET 1.0.

  • Le fichier Web.config de votre application spécifie <identity impersonate="true" />.

    En mode intégré dans IIS 7, l’emprunt d’identité du client n’est pas disponible dans certaines phases anticipées du traitement des demandes. C’est pourquoi IIS génère le message d’erreur de migration. Si votre application Web ASP.NET emprunte les informations d’identification du client (cas très fréquent dans les scénarios intranet), vous pouvez définir l’attribut validateIntegratedModeConfiguration sur false.

Remarque

Si vous migrez votre configuration manuellement, ou si vous ne migrez pas votre configuration mais souhaitez continuer d’utiliser IIS en mode intégré (option non recommandée), vous pouvez désactiver les messages d’erreur de migration en définissant l’attribut validateIntegratedModeConfiguration sur false. Comme IIS ne fournit plus d’avertissements pour les configurations non prises en charge quand validateIntegratedModeConfiguration est défini sur false, vérifiez que votre application fonctionne correctement en mode intégré avant d’appliquer ce paramètre.

Compatibilité

Version Notes
IIS 10.0 L’élément <validation> n’a fait l’objet d’aucune modification dans IIS 10.0.
IIS 8.5 L’élément <validation> n’a fait l’objet d’aucune modification dans IIS 8.5.
IIS 8.0 L’élément <validation> n’a fait l’objet d’aucune modification dans IIS 8.0.
IIS 7.5 L’élément <validation> n’a fait l’objet d’aucune modification dans IIS 7.5.
IIS 7.0 L’élément <validation> a été introduit dans IIS 7.0.
IIS 6.0 S/O

Programme d’installation

L’élément <validation> est inclus dans l’installation par défaut d’IIS 7.

Procédure

Il n’existe pas d’interface utilisateur permettant d’ajouter la validation dans IIS 7. Pour obtenir des exemples sur la façon d’ajouter une validation programmatiquement, consultez la section Exemples de code de ce document.

Configuration

Attributs

Attribut Description
validateIntegratedModeConfiguration Attribut booléen facultatif.

Spécifie si la validation de la configuration est activée quand l’application s’exécute en mode intégré. Les sections <system.Web/httpHandlers> et <system.Web/httpModules> ainsi que l’emprunt d’identité sont vérifiés durant ce processus.

La valeur par défaut est true.

Éléments enfants

Aucune.

Exemple Configuration

L’exemple de configuration suivant active la validation. > [!REMARQUE]

L’extrait provenant d’un fichier Web.config, cet exemple de configuration peut donc être utilisé à n’importe quel niveau de dossier d’un site web.

<configuration>
   <system.webServer>
      <validation validateIntegratedModeConfiguration="true" />
   </system.webServer>
</configuration>

Exemple de code

Les exemples de code suivants activent la validation pour le site web par défaut.

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.webServer/validation /validateIntegratedModeConfiguration:"True"

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using(ServerManager serverManager = new ServerManager())
      { 
         Configuration config = serverManager.GetWebConfiguration("Default Web Site");

         ConfigurationSection validationSection = config.GetSection("system.webServer/validation");
         validationSection["validateIntegratedModeConfiguration"] = true;

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample

   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetWebConfiguration("Default Web Site")

      Dim validationSection As ConfigurationSection = config.GetSection("system.webServer/validation")
      validationSection("validateIntegratedModeConfiguration") = True

      serverManager.CommitChanges()
   End Sub

End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site";

var validationSection = adminManager.GetAdminSection("system.webServer/validation", "MACHINE/WEBROOT/APPHOST/Default Web Site");
validationSection.Properties.Item("validateIntegratedModeConfiguration").Value = true;

adminManager.CommitChanges();

VBScript

Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site"

Set validationSection = adminManager.GetAdminSection("system.webServer/validation", "MACHINE/WEBROOT/APPHOST/Default Web Site")
validationSection.Properties.Item("validateIntegratedModeConfiguration").Value = True

adminManager.CommitChanges()