gpt4 book ai didi

c# - 更改默认的 ASP MVC 请求 header 以添加您自己的值

转载 作者:太空狗 更新时间:2023-10-29 17:49:45 24 4
gpt4 key购买 nike

我试图将我所有的 ASP MVC HTTP 响应 header 更改为默认具有另一个值,以便在我的博客应用程序中实现 Pingback 自动发现。

默认 header (在 Cassini 上)是:

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

我想要一个额外的附加值:

X-Pingback: http://localhost:4912/pingback/xmlrpcserver

我用谷歌搜索了一下,找到了一个 neet 解决方案:-- 从 ActionFilterAttribute 派生并覆盖 OnResultExecuted 方法:

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);
}

}

然后简单地将属性放在我的 Controller 方法上:

[HttpHeader("X-Pingback","http://localhost:4912/pingback/xmlrpcserver")]
public ActionResult Index()
{
var allArticles = _repository.GetPublishedArticles(SortOrder.desc);
return View(allArticles);
}

当我运行应用程序时,出现以下错误: enter image description here

有什么想法吗?

最佳答案

我知道这篇文章已经过时了...但我想指出虽然 OnResultExecuting 是执行此操作的正确方法,但原始文章显示他正在尝试向请求添加 header 。一个人不会简单地向请求添加 header 并期望它们出现在响应中。 ;-)

此外,将 header 添加到响应的正确方法...在 Cassini 中也适用...是使用以下方法:

filterContext.HttpContext.Response.AddHeader("X-My-Request-Header", "works in cassini");

关于c# - 更改默认的 ASP MVC 请求 header 以添加您自己的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10254570/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com