gpt4 book ai didi

c# - 删除自托管 Web Api 响应中的服务器 header

转载 作者:行者123 更新时间:2023-12-01 05:11:34 27 4
gpt4 key购买 nike

我们正在使用自托管的 WebApi,我们需要删除所发送响应的服务器 header (服务器:Microsoft-HTTPAPI/2.0)。

由于它是自托管的,因此 HttpModule 不是一种选择。实现 DelegatingHandler ,可以访问标题以及添加。 asp.net website很好地详细说明了如何做到这一点。

但是服务器 header 似乎在管道中添加得更晚,因为它没有在 HttpResponseMessage 中设置。我们从DelegatingHandler返回.但是,我们可以添加值。

async protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
HttpResponseMessage response = await base.SendAsync(request, cancellationToken);
response.Headers.Server.Add(new ProductInfoHeaderValue("TestProduct", "1.0"));
response.Headers.Add("Server", "TestServerHeader");

return response;
}

两者 Server.Add.Add按预期工作。 response.Headers.Remove("Server");但是不起作用,因为没有设置服务器 header , response.Headers.Server是空的。

有什么我想念的吗?

最佳答案

添加

appBuilder.Use((context, next) =>
{
context.Response.Headers.Remove("Server");
context.Response.Headers.Add("Server", new[] { "" });
return next.Invoke();
});

之前的启动配置方法
config.EnsureInitialized();

关于c# - 删除自托管 Web Api 响应中的服务器 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24488385/

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