実行中のミドルウェアの一部としてX-Powered-Byを削除できないのはなぜですか?私はweb.configに入れても削除できますが、ミドルウェアに入れないと削除できません。私はミドルウェア "Server"の別のヘッダを削除しています。 "Kestrel"は動作し、私のミドルウェアが実行されていると伝えます。asp.net core remove X-Powered-Byはミドルウェアでは実行できません
私は私のStartup.Configure方法がどのように見える私のミドルウェア
public class ManageHttpHeadersMiddleware
{
private RequestDelegate _next;
public ManageHttpHeadersMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task Invoke(HttpContext context)
{
context.Response.OnStarting(() =>
{
context.Response.Headers.Remove("Server");
context.Response.Headers.Remove("X-Powered-By");
return Task.CompletedTask;
});
await _next(context);
}
}
を、Visual Studioの2015年、ASP.NetコアWebアプリケーション(.NET Frameworkの)を使用して、1.0.0-RC2-ファイナルいますこの
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddSerilog(new LoggerConfiguration()
.ReadFrom.ConfigurationSection(Configuration.GetSection("Serilog"))
.CreateLogger())
.AddDebug();
app.UseMiddleware<ManageHttpHeadersMiddleware>();
app.UseJwtBearerAuthentication();
app.UseMvc();
app.UseSwaggerGen();
app.UseSwaggerUi();
}
だから私の質問は以下のとおりです。
- スタートアップでミドルウェアを実行しているためですか?設定していますか?
- ミドルウェア で実行しているイベントのためですか?私はOnCompletedを使用しようとしましたが、明らかに遅れて "サーバー"を削除しませんでした: "Kestrel"
- それは がAzureのKestrelまたはIISによって追加されたためですか?唯一の除去方法は web.config ?
は、私はあなたが私の周りに仕事を持っているし、私の問題何が主張する可能性があり、保守を支援するために、などなどを同じコードの場所に同じ要件を達成するためにいいだろうということを知っている
この質問は重複可能性がありますhttp://stackoverflow.com/questions/38279974/how-to-remove-server-header-using-middleware。その質問は私の自己によって尋ねられます。ミドルウェアのサーバーヘッダーを削除できることを知りたいだけですか? – dotnetstep