c# - 在 asp.net mvc 中没有删除 header 服务器

标签 c# asp.net asp.net-mvc asp.net-mvc-4 iis

我在 https url 上有一个 asp.net mvc 项目。

我已经从 IIS 中删除了 X-Power-By header 。

我的 web.config 中有这些行:

<customHeaders>
    <remove name="X-AspNet-Version" />
    <remove name="X-AspNetMvc-Version" />
    <remove name="X-Powered-By" />
    </customHeaders>
</httpProtocol>

我写了下面的类:

public class RemoveServerHeaderModule : IHttpModule
{
    public void Init(HttpApplication context)
    {
        context.PreSendRequestHeaders += OnPreSendRequestHeaders;
    }

    public void Dispose() { }

    void OnPreSendRequestHeaders(object sender, EventArgs e)
    {
        HttpContext.Current.Response.Headers.Remove("X-Powered-By");
        HttpContext.Current.Response.Headers.Remove("X-AspNet-Version");
        HttpContext.Current.Response.Headers.Remove("X-AspNetMvc-Version");
        HttpContext.Current.Response.Headers.Remove("Server");
    }
}

并且我在上面的类的 web.config 中添加了这一行:

<modules>
    <add name="RemoveServerHeaderModule" type="IZBSC.UI.Components.RemoveServerHeaderModule" />
</modules>

即使我已将以下行添加到我的 Global.asax 文件中:

protected void Application_PreSendRequestHeaders(object sender, EventArgs e)
{
    HttpContext.Current.Response.Headers.Remove("X-Powered-By");
    HttpContext.Current.Response.Headers.Remove("X-AspNet-Version");
    HttpContext.Current.Response.Headers.Remove("X-AspNetMvc-Version");
    HttpContext.Current.Response.Headers.Remove("Server");
}

并且我在 Global.asax 中的 Application_Start() 方法中添加了以下代码行:

MvcHandler.DisableMvcResponseHeader = true;

现在服务器 header 已从我的页面中删除...

但是……

某些 css 和 jquery 以及图片文件会显示服务器 header 和 X-Power-By header 。

我真的应该怎么做才能从我的所有请求(包括页面、样式、脚本和图像文件)中删除 Server 和 X-Power-By header ?

最佳答案

如果您希望从整个 IIS 服务器 中删除服务器响应 header (这在安全方面更好),您可以从注册表中进行配置:

https://blogs.msdn.microsoft.com/varunm/2013/04/23/remove-unwanted-http-response-headers/

删除此 header :

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

关于c# - 在 asp.net mvc 中没有删除 header 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46889507/

相关文章:

c# - 从俄罗斯网站读取 XML 时的编码问题

asp.net-mvc - Html.ValidationSummary 和 Ajax.BeginForm 最佳实践

asp.net-mvc - ASP.net MVC 3 教程推荐

c# - OutOfMemoryException C# 上传图像文件时

C# Web 异常意外的 EOF

c# - "A project with an Output type of Class Library cannot be started directly"

c# - 无法从 View 将数据传递到我的 Controller

asp.net - ASP .NET : Dynamic load controls vs Visible = true

c# - GetHashCode(键) & int.MaxValue

c# - .NET 反射 - 泛型类型定义的 GetInterfaces() 结果无法与泛型文字类型成功比较