C# asp.net mvc中未删除头服务器

C# asp.net mvc中未删除头服务器,c#,asp.net,asp.net-mvc,asp.net-mvc-4,iis,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Iis,我有一个基于https url的asp.net mvc项目 我已从IIS中删除X-Power-By标头 我的web.config中有以下行: <customHeaders> <remove name="X-AspNet-Version" /> <remove name="X-AspNetMvc-Version" /> <remove name="X-Powered-By" /> </customHeaders&

我有一个基于https url的asp.net mvc项目

我已从IIS中删除X-Power-By标头

我的web.config中有以下行:

<customHeaders>
    <remove name="X-AspNet-Version" />
    <remove name="X-AspNetMvc-Version" />
    <remove name="X-Powered-By" />
    </customHeaders>
</httpProtocol>
我在我的web.config中为上述类添加了这一行:

<modules>
    <add name="RemoveServerHeaderModule" type="IZBSC.UI.Components.RemoveServerHeaderModule" />
</modules>
我在Global.asax中的应用程序_Start()方法中添加了以下代码行:

MvcHandler.DisableMvcResponseHeader = true;
现在服务器标题已从我的页面中删除

但是

一些css、jquery和图片文件显示了服务器头和X-Power-By头


确实,要从所有请求(包括页面、样式、脚本和图像文件)中删除服务器和X-Power-By头文件,我应该怎么做?

如果您希望从整个IIS服务器中删除服务器响应头文件(从安全角度看,这更好),您可以从注册表中进行配置:

删除此标题:

  • 服务器-指定web服务器版本
  • X-Powered-By-表示该网站“由ASP.NET提供支持”
  • X-AspNet-Version-指定使用的ASP.NET版本

如果您希望从整个IIS服务器中删除服务器响应头(从安全角度来看,这更好),您可以从注册表中配置它:

删除此标题:

  • 服务器-指定web服务器版本
  • X-Powered-By-表示该网站“由ASP.NET提供支持”
  • X-AspNet-Version-指定使用的ASP.NET版本
来自“Oria”的建议答案是我经常使用的答案,现在仍然经常使用,并且它与托管代码配合得很好。但是,JS文件是静态内容,默认情况下直接提供,而不是通过托管代码提供。 托管代码模块仅适用于通过ASP.NET管道的代码。因此,您应该将以下内容添加到system.webServer部分的webconfig中,以强制所有请求通过托管代码:

<modules runAllManagedModulesForAllRequests="true">

像这样:

<system.webServer>     
  <modules runAllManagedModulesForAllRequests="true">     
   </modules>     
</system.webServer>

使用此语句,您甚至可以强制静态内容遵守标题规则。希望有帮助

来自“Ori a”的建议答案是我经常使用的答案,现在仍然经常使用,并且它与托管代码配合得很好。但是,JS文件是静态内容,默认情况下直接提供,而不是通过托管代码提供。 托管代码模块仅适用于通过ASP.NET管道的代码。因此,您应该将以下内容添加到system.webServer部分的webconfig中,以强制所有请求通过托管代码:

<modules runAllManagedModulesForAllRequests="true">

像这样:

<system.webServer>     
  <modules runAllManagedModulesForAllRequests="true">     
   </modules>     
</system.webServer>



使用此语句,您甚至可以强制静态内容遵守标题规则。希望有帮助

你试过在IIS中实现URL重写规则吗?这看起来很像这个问题@alaa_sayegh是的,但js文件上的标题仍然存在。@HamidReza看到我发布的答案了吗?你试过在IIS中实现URL重写规则吗?这看起来很像这个问题@alaa_sayegh是的,但js文件上的标题仍然存在剩余。@HamidReza查看我发布的回复谢谢。现在从一些文件中删除了标题,而其他一些文件(如js文件)的标题尚未删除。谢谢。现在从一些文件中删除了标题,而其他一些文件(如js文件)的标题尚未删除。谢谢,但js和图像文件中仍保留着服务器标题。您能给我看一个示例吗?你有任何联系吗?或者粘贴一张截图哪个js?选择js文件时,我看不到任何头服务器值。我使用谷歌浏览器,在网络标签下。在修复runAllManagedModulesForAllRequests后,您可能需要清除缓存。除非绝对必要,否则您应该真正避免使用
runAllManagedModulesForAllRequests
。谢谢,但是js和图像文件上仍保留有服务器头。您能给我看一个示例吗?你有任何联系吗?或者粘贴一张截图哪个js?选择js文件时,我看不到任何头服务器值。我使用谷歌浏览器,在网络标签下。在修复runAllManagedModulesForAllRequests后,您可能需要清除缓存。除非绝对必要,否则您应该真正避免使用
runAllManagedModulesForAllRequests