Cambiar el encabezado de solicitud predeterminado de MVC de ASP para agregar sus propios valores
Estoy tratando de cambiar todos mis encabezados de respuesta HTTP ASP MVC para tener otro valor por defecto para implementar el descubrimiento automático de Pingback en mi aplicación de blog.
El encabezado predeterminado (en Cassini) es:
Cache-Control private
Connection Close
Content-Length 20901
Content-Type text/html; charset=utf-8
Date Fri, 20 Apr 2012 22:46:11 GMT
Server ASP.NET Development Server/10.0.0.0
X-AspNet-Version 4.0.30319
X-AspNetMvc-Version 3.0
Y quiero un valor añadido extra:
X-Pingback: http://localhost:4912/pingback/xmlrpcserver
He buscado un poco en Google y he encontrado una nueva solución: - derivar deActionFilterAttribute y anular elOnResultEjecutado método:
public class HttpHeaderAttribute : ActionFilterAttribute
{
public string Name { get; set; }
public string Value { get; set; }
public HttpHeaderAttribute(string name, string value)
{
Name = name;
Value = value;
}
public override void OnResultExecuted(ResultExecutedContext filterContext)
{
filterContext.HttpContext.Request.Headers.Add(Name, Value);
base.OnResultExecuted(filterContext);
}
}
Y luego simplemente puse el atributo en mis métodos de Controladores:
[HttpHeader("X-Pingback","http://localhost:4912/pingback/xmlrpcserver")]
public ActionResult Index()
{
var allArticles = _repository.GetPublishedArticles(SortOrder.desc);
return View(allArticles);
}
Cuando ejecuto la aplicación me sale el siguiente error:
¿Algunas ideas?