在OWIN自托管应用中移除服务器HTTP头

5

我有一个自托管的OWIN应用程序,并希望从所有响应中删除Server头("Microsoft-HTTPAPI/2.0")。在Google上搜索时,看起来这是一项非常容易的任务,例如来自MSDN的博客文章提供了一个似乎非常简单的解决方案。我按照以下步骤操作:

  • HKLM\SYSTEM\CurrentControlSet\Services\HTTP\Parameters 中添加注册表键 DisableServerHeader并将其设置为DWORD 1
  • 重新启动服务器以确保HTTP服务捕获更改

结果令人失望,没有任何变化,我仍然得到Server头。令我困惑的是,所有解决方案都完全相同,对它们来说似乎可以工作。 是否还需要其他步骤才能从自托管的OWIN应用程序中删除Server头?

更新 我尝试添加Server头,它实际上有效,但它仍会添加Microsoft-HTTPAPI/2.0。

将此代码作为DelegatingHandler添加:

HttpResponseMessage response = await base.SendAsync(request, cancellationToken);
response.Headers.Server.Add(new ProductInfoHeaderValue("Foo", "1.0"));

生成此服务器标头: 服务器: Foo/1.0 Microsoft-HTTPAPI/2.0

1个回答

0
这段代码对我来说有效:
public void Configuration(IAppBuilder appBuilder)
    {

        appBuilder.Use(async (context, next) =>
        {
            context.Response.OnSendingHeaders(state =>
            {
                var response = (IOwinResponse)state;
                context.Response.Headers.Remove("Server");
                context.Response.Headers.Add("Server", new[] { "" });
            }, context.Response);
        }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接