Cabeçalhos Personalizados <customHeaders>
Visão geral
O elemento <customHeaders>
do elemento <httpProtocol>
especifica os cabeçalhos HTTP personalizados que o IIS (Serviços de Informações da Internet) 7 retornará nas respostas HTTP do servidor Web.
Observação
Os cabeçalhos HTTP são pares nome-valor que são retornados nas respostas de um servidor Web. Os cabeçalhos de resposta personalizados são enviados ao cliente junto com o cabeçalho HTTP padrão. Ao contrário dos cabeçalhos de resposta de redirecionamento, que são retornados em respostas somente quando ocorre o redirecionamento, os cabeçalhos de resposta personalizados são retornados em cada resposta.
Compatibilidade
Versão | Observações |
---|---|
IIS 10.0 | O elemento <customHeaders> não foi modificado no IIS 10.0. |
IIS 8.5 | O elemento <customHeaders> não foi modificado no IIS 8.5. |
IIS 8.0 | O elemento <customHeaders> não foi modificado no IIS 8.0. |
IIS 7.5 | O elemento <customHeaders> não foi modificado no IIS 7.5. |
IIS 7.0 | O elemento <customHeaders> do elemento <httpProtocol> foi introduzido no IIS 7.0. |
IIS 6,0 | O elemento <customHeaders> substitui o objeto de metabase HttpCustomHeaders do IIS 6.0. |
Instalação
O elemento <customHeaders>
do elemento <httpProtocol>
está incluído na instalação padrão do IIS 7.
Instruções
Como definir cabeçalhos HTTP personalizados para um site ou aplicativo
Abra o Gerenciador do IIS (Serviços de Informações da Internet):
Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:
- Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador do IIS (Serviços de Informações da Internet).
Se você estiver usando o Windows 8 ou Windows 8.1:
- Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
- Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador do IIS (Serviços de Informações da Internet).
Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:
- Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador do IIS (Serviços de Informações da Internet).
Se você estiver usando o Windows Vista ou Windows 7:
- Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
- Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador do IIS (Serviços de Informações da Internet).
No painel Conexões, acesse o site, o aplicativo ou o diretório para o qual você deseja definir uma cabeçalho HTTP personalizado.
No painel Página Inicial, clique duas vezes em Cabeçalhos de Resposta HTTP.
No painel Cabeçalhos de Resposta HTTP, clique em Adicionar... no painel Ações.
Na caixa de diálogo Adicionar Cabeçalho de Resposta HTTP Personalizado, defina o nome e o valor do cabeçalho personalizado e clique em OK.
Configuração
Atributos
Nenhum.
Elementos filho
Elemento | Descrição |
---|---|
add |
Elemento opcional. Adiciona um cabeçalho de resposta personalizado à coleção <customHeaders> . |
clear |
Elemento opcional. Remove todas as referências aos cabeçalhos de resposta personalizados da coleção <customHeaders> . |
remove |
Elemento opcional. Remove uma referência a um cabeçalho de resposta personalizado da coleção <customHeaders> . |
Exemplo de configuração
O exemplo de configuração a seguir define um cabeçalho HTTP personalizado e um valor.
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-Custom-Name" value="MyCustomValue" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
Observação
O elemento padrão <httpProtocol>
a seguir é configurado no arquivo ApplicationHost.config no IIS 7.
<httpProtocol>
<customHeaders>
<clear />
<add name="X-Powered-By" value="ASP.NET" />
</customHeaders>
<redirectHeaders>
<clear />
</redirectHeaders>
</httpProtocol>
Exemplo de código
Os exemplos de código a seguir definem um cabeçalho HTTP personalizado e um valor.
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()