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:
<code>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 </code>
Y quiero un valor añadido extra:
<code>X-Pingback: http://localhost:4912/pingback/xmlrpcserver </code>
He buscado un poco en Google y he encontrado una nueva solución: - derivar deActionFilterAttribute y anular elOnResultEjecutado método:
<code>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); } } </code>
Y luego simplemente puse el atributo en mis métodos de Controladores:
<code>[HttpHeader("X-Pingback","http://localhost:4912/pingback/xmlrpcserver")] public ActionResult Index() { var allArticles = _repository.GetPublishedArticles(SortOrder.desc); return View(allArticles); } </code>
Cuando ejecuto la aplicación me sale el siguiente error:
¿Algunas ideas?