¿Cómo eliminar los encabezados HTTP predeterminados de ASP.Net MVC?
Cada página de una aplicación MVC con la que estoy trabajando establece estos encabezados HTTP en las respuestas:
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
X-AspNetMvc-Version: 2.0
¿Cómo evito que se muestren?
X-Powered-By
es un encabezado personalizado en IIS. Desde IIS 7, puedes eliminarlo agregando lo siguiente a tu web.config
:
<system.webServer>
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>
</system.webServer>
Este encabezado también se puede modificar según sus necesidades; para obtener más información, consulte http://www.iis.net/ConfigReference/system.webServer/httpProtocol/customHeaders
Agregue esto para web.config
deshacerse del X-AspNet-Version
encabezado:
<system.web>
<httpRuntime enableVersionHeader="false" />
</system.web>
Finalmente, para eliminar X-AspNetMvc-Version
, editar Global.asax.cs
y agregar lo siguiente en el Application_Start
evento:
protected void Application_Start()
{
MvcHandler.DisableMvcResponseHeader = true;
}
También puedes modificar los encabezados en tiempo de ejecución a través del Application_PreSendRequestHeaders
evento en Global.asax.cs
. Esto es útil si los valores de su encabezado son dinámicos:
protected void Application_PreSendRequestHeaders(object source, EventArgs e)
{
Response.Headers.Remove("foo");
Response.Headers.Add("bar", "quux");
}
También puedes eliminarlos agregando código a tu archivo global.asax:
protected void Application_PreSendRequestHeaders(object sender, EventArgs e)
{
HttpContext.Current.Response.Headers.Remove("X-Powered-By");
HttpContext.Current.Response.Headers.Remove("X-AspNet-Version");
HttpContext.Current.Response.Headers.Remove("X-AspNetMvc-Version");
HttpContext.Current.Response.Headers.Remove("Server");
}