ASP.NET MVC 项目设置,移除多余的响应头,woff,woff2 字体文件请求处理

时间:2022-12-29 13:22:52

移除 X-AspNetMvc-Version

在 Global.asax 的 Application_Start添加代码 

MvcHandler.DisableMvcResponseHeader = true; 

移除 X-AspNet-Version

在 web.config 下的 system.web 节点下设置 enableVersionHeader=false

<httpRuntime targetFramework="4.5" enableVersionHeader="false" />

移除 X-Powered-By

在 web.config 下的 system.webServer 添加 一下代码

<system.webServer>
    <httpProtocol>
      <customHeaders>
        <remove name="X-Powered-By" />
      </customHeaders>
    </httpProtocol>
</system.webServer>

 

移除 Server

有两种方式,以下方式任选其中一个。

1. 在 global.asax 重写 Application_PreSendRequestHeaders 方法

protected void Applcation_PreSendRequestHeaders(object sender, EventArgs e)
        {
            var application = sender as HttpApplication;
            if (application != null && application.Context != null)
            {
                application.Context.Response.Headers.Remove("Server");
                //application.Context.Response.Headers.Set("Server", "MY Server");
            }
        }

2. 新建一个 HttpMoudle 来处理

public class SiteHeaderMoudle : IHttpModule
    {
        public void Dispose()
        {
        }

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

        private void context_PreSendRequestHeaders(object sender, EventArgs e)
        {
            HttpContext.Current.Response.Headers.Remove("Server");
        }
    }

然后再 webconfig 文件中注册

<system.webServer>
    <httpProtocol>
      <customHeaders>
        <remove name="X-Powered-By" />
      </customHeaders>
    </httpProtocol>
    <modules runAllManagedModulesForAllRequests="true">
      <add name="SiteHeaderMoudle" type="MY.web.Extended.SiteHeaderMoudle"/>  // 注意类的命名空间
    </modules>
    <staticContent>
      <!--修复浏览器访问bootstrap以下后缀的字体notfound错误-->
      <remove fileExtension=".woff" />
      <mimeMap fileExtension=".woff" mimeType="application/font-woff" />
      <remove fileExtension=".woff2" />
      <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
    </staticContent>
  </system.webServer>

其他设置,只保留 Razor 视图引擎

protected void Application_Start()
        {
            // Removing all the view engines
            ViewEngines.Engines.Clear();
            //Add Razor Engine (which we are using)
            ViewEngines.Engines.Add(new RazorViewEngine());
        }

 

参考文章

http://www.cnblogs.com/CareySon/archive/2009/12/14/1623624.html

https://blogs.technet.microsoft.com/stefan_gossner/2008/03/12/iis-7-how-to-send-a-custom-server-http-header/