gpt4 book ai didi

asp.net - 如何从应用服务 Web 应用程序上的 http 响应 header 中删除 "Microsoft-HTTPAPI/2.0"

转载 作者:行者123 更新时间:2023-12-03 00:11:58 26 4
gpt4 key购买 nike

我创建了两个 asp.net + MVC 应用程序,并将一个部署到 Azure 应用服务 Web 应用程序,另一个部署到在 ASE(应用程序服务环境)中创建的应用程序服务 Web 应用程序。

在 URL 中提供特殊字符时,响应 header 由“Microsoft-HTTPAPI/2.0”组成。我已在应用程序中进行了以下更改,但问题仍然存在。

<security>
<requestFiltering removeServerHeader="true"/>
</security>

protected void Application_PreSendRequestHeaders(Object source, EventArgs e)
{
HttpContext.Current.Response.Headers.Remove("Server");
}

最佳答案

删除默认 header 。您可以创建一个 http 模块来执行此操作。以下代码供您引用。

public class RemoveDefaultHeaderModule : IHttpModule
{
public void Dispose()
{

}

public void Init(HttpApplication context)
{
context.PreSendRequestHeaders += Context_PreSendRequestHeaders;
}

private void Context_PreSendRequestHeaders(object sender, EventArgs e)
{
//Remove the header you wanted
(sender as HttpApplication).Response.Headers.Remove("Server");
(sender as HttpApplication).Response.Headers.Remove("X-AspNet-Version");
}
}

您还需要在 web.config 中注册此模块。不要忘记将 runAllManagedModulesForAllRequests 属性设置为 true,这将使该模块适用于静态资源。

<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="RemoveDefaultHeaderModule" type="TestServerHeader.RemoveDefaultHeaderModule" />
</modules>
</system.webServer>

关于asp.net - 如何从应用服务 Web 应用程序上的 http 响应 header 中删除 "Microsoft-HTTPAPI/2.0",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43779890/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com