Benutzerdefinierte Header <customHeaders>

Übersicht

Das <customHeaders>-Element des <httpProtocol>-Elements gibt benutzerdefinierte HTTP-Header an, die Internetinformationsdienste 7 (Internet Information Services, IIS) in HTTP-Antworten vom Webserver zurückgibt.

Hinweis

HTTP-Header sind Name-Wert-Paare, die in Antworten von einem Webserver zurückgegeben werden. Benutzerdefinierte Antwortheader werden zusammen mit dem HTTP-Standardheader an den Client gesendet. Im Gegensatz zu Umleitungsantwortheadern, die nur in Antworten zurückgegeben werden, wenn eine Umleitung erfolgt, werden benutzerdefinierte Antwortheader in jeder Antwort zurückgegeben.

Kompatibilität

Version Hinweise
IIS 10.0 Das <customHeaders>-Element wurde in IIS 10.0 nicht geändert.
IIS 8.5 Das <customHeaders>-Element wurde in IIS 8.5 nicht geändert.
IIS 8.0 Das <customHeaders>-Element wurde in IIS 8.0 nicht geändert.
IIS 7.5 Das <customHeaders>-Element wurde in IIS 7.5 nicht geändert.
IIS 7.0 Das <customHeaders>-Element des <httpProtocol>-Elements wurde in IIS 7.0 eingeführt.
IIS 6.0 Das <customHeaders>-Element ersetzt das HttpCustomHeaders-Metabasisobjekt von IIS 6.0.

Setup

Das <customHeaders>-Element des <httpProtocol>-Elements ist in der Standardinstallation von IIS 7 enthalten.

Gewusst wie

Festlegen benutzerdefinierter HTTP-Header für eine Website oder Anwendung

  1. Öffnen Sie Internetinformationsdienste-Manager (IIS-Manager):

    • Vorgehensweise unter Windows Server 2012 oder Windows Server 2012 R2:

      • Klicken Sie auf der Taskleiste auf Server-Manager > Tools > Internetinformationsdienste-Manager (IIS-Manager).
    • Vorgehensweise unter Windows 8 oder Windows 8.1:

      • Halten Sie die WINDOWS-TASTE gedrückt, drücken Sie den Buchstaben X, und klicken Sie dann auf Systemsteuerung.
      • Klicken Sie auf Verwaltung, und doppelklicken Sie dann auf Internetinformationsdienste-Manager (IIS-Manager).
    • Vorgehensweise unter Windows Server 2008 oder Windows Server 2008 R2:

      • Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltung, und klicken Sie dann auf Internetinformationsdienste-Manager (IIS-Manager).
    • Vorgehensweise unter Windows Vista oder Windows 7:

      • Klicken Sie auf der Taskleiste auf Start und dann auf Systemsteuerung.
      • Doppelklicken Sie auf Verwaltung, und doppelklicken Sie dann auf Internetinformationsdienste-Manager (IIS-Manager).
  2. Navigieren Sie im Bereich Verbindungen zu dem Element, für das Sie einen benutzerdefinierten HTTP-Header aktivieren möchten. Dabei kann es sich um eine Site, eine Anwendung oder ein Verzeichnis handeln.

  3. Doppelklicken Sie im Bereich Start auf HTTP-Antwortheader.
    Screenshot that shows the Home pane with H T T P Response Headers selected.

  4. Klicken Sie im Bereich HTTP-Antwortheader im Bereich Aktionen auf Hinzufügen....
    Screenshot of H T T P Response Headers pane with Add option displayed in the Actions pane.

  5. Legen Sie im Dialogfeld Benutzerdefinierten HTTP-Antwortheader hinzufügen den Namen und den Wert für Ihren benutzerdefinierten Header fest, und klicken Sie dann auf OK.
    Screenshot of Add Custom H T T P Header dialog box with fields for name and value for custom header.

Konfiguration

Attribute

Keine

Untergeordnete Elemente

Element Beschreibung
add Optionales Element.

Fügt der <customHeaders>-Sammlung einen benutzerdefinierten Antwortheader hinzu.
clear Optionales Element.

Entfernt alle Verweise auf benutzerdefinierte Antwortheader aus der <customHeaders>-Sammlung.
remove Optionales Element.

Entfernt einen Verweis auf einen benutzerdefinierten Antwortheader aus der <customHeaders>-Sammlung.

Konfigurationsbeispiel

Im folgenden Konfigurationsbeispiel werden ein benutzerdefinierter HTTP-Header und ein entsprechender Wert festgelegt.

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

Hinweis

Das folgende <httpProtocol>-Standardelement wird in IIS 7 in der Datei „ApplicationHost.config“ konfiguriert.

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

Beispielcode

In den folgenden Codebeispielen werden ein benutzerdefinierter HTTP-Header und ein entsprechender Wert festgelegt.

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()