删除 Net Core 3 中的 Server:Kestrel Header

Remove Server:Kestrel Header in Net Core 3

问题

如何从 .Net Core 3 应用程序的响应 header 中删除 "Server:Kestrel"?

在早期版本中,您可以执行以下操作,此 Stack Overflow .

中提到了

网络核心 1

 var host = new WebHostBuilder()
    .UseKestrel(c => c.AddServerHeader = false)
    .UseContentRoot(Directory.GetCurrentDirectory())
    .UseIISIntegration()
    .UseStartup<Startup>()
    .Build();

网络核心 2

WebHost.CreateDefaultBuilder(args)
           .UseKestrel(c => c.AddServerHeader = false)
           .UseStartup<Startup>()
           .Build();

Net Core 3(未找到 UseKestrel(),并且不起作用,因此以下不可能。)

 public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .UseKestrel(c => c.AddServerHeader = false)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
            });

您应该仍然可以设置 Kestrel 配置,只是有些变化

public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder
                    .ConfigureKestrel(options => options.AddServerHeader = false)
                    .UseStartup<Startup>();
            });