Partager via


Ajout d’en-têtes personnalisés <add>

Vue d’ensemble

L’élément <add> de l’élément <customHeaders> spécifie un en-tête HTTP personnalisé que Internet Information Services (IIS) 7 retourne dans les réponses HTTP du serveur Web.

Remarque

Les en-têtes HTTP sont des paires nom et valeur retournées dans les réponses d’un serveur Web. Les en-têtes de réponse personnalisés sont envoyés au client avec l’en-tête HTTP par défaut. Contrairement aux en-têtes de réponse de redirection, qui sont renvoyés dans les réponses uniquement en cas de redirection, les en-têtes de réponse personnalisés sont renvoyés dans chaque réponse.

Compatibilité

Version Notes
IIS 10.0 L’élément <add> n’a pas été modifié dans IIS 10.0.
IIS 8.5 L’élément <add> n’a pas été modifié dans IIS 8.5.
IIS 8.0 L’élément <add> n’a pas été modifié dans IIS 8.0.
IIS 7.5 L’élément <add> n’a pas été modifié dans IIS 7.5.
IIS 7.0 L’élément <add> de l’élément <customHeaders> a été introduit dans IIS 7.0.
IIS 6.0 L’élément <customHeaders> remplace l’objet de métabase IIS 6.0 HttpCustomHeaders.

Programme d’installation

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

Procédure

Comment définir des en-têtes HTTP personnalisés pour un site web ou une application

  1. Ouvrez le Gestionnaire des services Internet (IIS) :

    • Si vous utilisez Windows Server 2012 ou Windows Server 2012 R2 :

      • Dans la barre des tâches, cliquez sur Gestionnaire de serveur, cliquez sur Outils, puis sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows 8 ou Windows 8.1 :

      • Maintenez la touche Windows enfoncée, appuyez sur la lettre X, puis cliquez sur Panneau de configuration.
      • Cliquez sur Outils d’administration, puis double-cliquez sur Gestionnaire des services Internet (IIS).
    • Si vous utilisez Windows Server 2008 ou Windows Server 2008 R2 :

      • Cliquez sur Démarrer, placez le curseur sur Outils d’administration, puis cliquez sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows Vista ou Windows 7 :

      • Dans la barre des tâches, cliquez sur Démarrer, puis sur Panneau de configuration.
      • Double-cliquez sur Outils d’administration, puis double-cliquez sur Gestionnaire des services Internet (IIS).
  2. Dans le volet Connexions, accédez au site, à l’application ou au répertoire pour lequel vous souhaitez définir un en-tête HTTP personnalisé.

  3. Dans le volet Accueil, double-cliquez sur En-têtes de réponse HTTP.
    Screenshot of the I I S Manager window displaying the Default Web Site Home page. THe icon for H T T P Response Headers is highlighted.

  4. Dans le volet En-têtes de réponse HTTP, cliquez sur Ajouter… dans le volet Actions.
    Screenshot of the I I S Manager window display the H T T P Response Headers page.

  5. Dans la boîte de dialogue Ajouter un en-tête de réponse HTTP personnalisé, définissez le nom et la valeur de votre en-tête personnalisé, puis cliquez sur OK.
    Screenshot of the Add Custom HTTP Response Header dialog box.

Configuration

Attributs

Attribut Description
name Attribut de chaîne requis.

Spécifie un nom de champ pour l’en-tête de réponse personnalisé. Dans une réponse, un nom de champ précède la valeur de champ associée.
Value Attribut de chaîne facultatif.

Spécifie une valeur de champ pour l’en-tête de réponse personnalisé. Dans une réponse, une valeur de champ suit le nom de champ associé.

Éléments enfants

Aucune.

Exemple Configuration

L’exemple de configuration suivant définit un en-tête et une valeur HTTP personnalisés.

<configuration>
   <system.webServer>
      <httpProtocol>
         <customHeaders>
            <add name="X-Custom-Name" value="MyCustomValue" />
         </customHeaders>
      </httpProtocol>
   </system.webServer>
</configuration>

Remarque

L’élément <httpProtocol> par défaut suivant est configuré dans le fichier ApplicationHost.config dans IIS 7.

<httpProtocol>
   <customHeaders>
      <clear />
      <add name="X-Powered-By" value="ASP.NET" />
   </customHeaders>
   <redirectHeaders>
      <clear />
   </redirectHeaders>
</httpProtocol>

Exemple de code

Les exemples de code suivants définissent un en-tête et une valeur HTTP personnalisés.

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.webServer/httpProtocol /+"customHeaders.[name='X-Custom-Name',value='MyCustomValue']"

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 httpProtocolSection = config.GetSection("system.webServer/httpProtocol");
         ConfigurationElementCollection customHeadersCollection = httpProtocolSection.GetCollection("customHeaders");

         ConfigurationElement addElement = customHeadersCollection.CreateElement("add");
         addElement["name"] = @"X-Custom-Name";
         addElement["value"] = @"MyCustomValue";
         customHeadersCollection.Add(addElement);

         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 httpProtocolSection As ConfigurationSection = config.GetSection("system.webServer/httpProtocol")
      Dim customHeadersCollection As ConfigurationElementCollection = httpProtocolSection.GetCollection("customHeaders")

      Dim addElement As ConfigurationElement = customHeadersCollection.CreateElement("add")
      addElement("name") = "X-Custom-Name"
      addElement("value") = "MyCustomValue"
      customHeadersCollection.Add(addElement)

      serverManager.CommitChanges()
   End Sub

End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site";
var httpProtocolSection = adminManager.GetAdminSection("system.webServer/httpProtocol", "MACHINE/WEBROOT/APPHOST/Default Web Site");
var customHeadersCollection = httpProtocolSection.ChildElements.Item("customHeaders").Collection;

var addElement = customHeadersCollection.CreateNewElement("add");
addElement.Properties.Item("name").Value = "X-Custom-Name";
addElement.Properties.Item("value").Value = "MyCustomValue";
customHeadersCollection.AddElement(addElement);

adminManager.CommitChanges();

VBScript

Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site"
Set httpProtocolSection = adminManager.GetAdminSection("system.webServer/httpProtocol", "MACHINE/WEBROOT/APPHOST/Default Web Site")
Set customHeadersCollection = httpProtocolSection.ChildElements.Item("customHeaders").Collection

Set addElement = customHeadersCollection.CreateNewElement("add")
addElement.Properties.Item("name").Value = "X-Custom-Name"
addElement.Properties.Item("value").Value = "MyCustomValue"
customHeadersCollection.AddElement(addElement)

adminManager.CommitChanges()