एएसपी.नेट कोर 1.0 में प्रत्येक प्रतिक्रिया में हेडर Server: Kestrel
शामिल होगा। मैं इस हेडर को अन्य शीर्षलेख के साथ X-Power-By
मिडलवेयर का उपयोग करके हटाना चाहता हूं।मिडलवेयर का उपयोग कर सर्वर हेडर को कैसे हटाएं?
मुझे पता है कि हम मेजबान कॉन्फ़िगरेशन में केस्टेल हेडर को निम्न सेट करके हटा सकते हैं, लेकिन मैं इसे मिडलवेयर का उपयोग करके करना चाहता हूं (वास्तव में जब हमारे पास Httpmodule है तो हम ऐसा कर सकते हैं इसलिए मैं एक ही चीज़ सीख रहा हूं)। मैंने अपनी बिट कोशिश की, यह काम नहीं किया।
new WebHostBuilder()
.UseKestrel(c => c.AddServerHeader = false)
की कोशिश की कोड:
public class HeaderRemoverMiddleware
{
private readonly RequestDelegate _next;
public HeaderRemoverMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task Invoke(HttpContext httpContext)
{
httpContext.Response.OnStarting(callback: removeHeaders, state: httpContext);
await _next.Invoke(httpContext);
}
private Task removeHeaders(object context)
{
var httpContext = (HttpContext)context;
if (httpContext.Response.Headers.ContainsKey("Server"))
{
httpContext.Response.Headers.Remove("Server");
}
return Task.FromResult(0);
}
}
public static class HeaderRemoverExtensions
{
public static IApplicationBuilder UseServerHeaderRemover(this IApplicationBuilder builder)
{
return builder.UseMiddleware<HeaderRemoverMiddleware>();
}
}
बूलियन संपत्ति चाहिए
यहां नमूने मिडलवेयर है कि किसी भी हेडर आप इसे पारित निकाल देंगे है काम। – davidfowl
मुझे पता है कि यह काम करेगा लेकिन मैं इस तरह के सभी शीर्षलेख को एक ही स्थान से हटाना चाहता हूं। – dotnetstep
नया वेबहोस्टबिल्डर()। UseKestrel (c => c.AddServerHeader = false) मेरे लिए काम किया! –