删除OWIN自托管应用程序中的服务器HTTP标头

Mat*_*ias 5 .net c# self-hosting http-headers owin

我有一个应用程序自托管OWIN应用程序,我想从所有响应中删除Server标头("Microsoft-HTTPAPI/2.0").在Google上搜索时,它看起来非常简单,例如MSDN上的这篇博文显示了一个看起来非常简单的解决方案.我按照说明操作:

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

结果非常令人失望,没有任何改变,我仍然得到Server头.令我感到困惑的是,所有解决方案都完全相同,对他们来说似乎有效.还有什么需要做的才能从自托管的OWIN应用程序中删除Server标头吗?

更新 我尝试自己添加一个服务器头,它实际上工作,但它仍然添加了Microsoft-HTTPAPI/2.0.

将此代码添加为DelegatingHandler:

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

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

小智 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);
        }
}
Run Code Online (Sandbox Code Playgroud)