Я также хотел изменить свои заголовки, но я должен был скрыться как можно больше. Это - то же для, Добавляют или Удаляют или оба, это - просто заголовки.
1) можно установить MvcHandler.DisableMvcResponseHeader = true;
в global.asax
protected void Application_Start()
{
MvcHandler.DisableMvcResponseHeader = true;
}
and
protected void Application_PreSendRequestHeaders()
{
Response.Headers.Remove("Server");
Response.Headers.Remove("X-AspNet-Version");
}
2), Вы не должны действительно использовать различный модуль почти для того же задания, вместо этого создавать HeadersModule
, который только обрабатывает модификацию заголовка, и используйте PreSendRequestHeaders
, чтобы добавить или удалить любые заголовки, которые Вы хотите. Можно всегда вводить некоторый сервис со списком заголовков, чтобы добавить или удалить.
public class HeadersModule : IHttpModule
{
public void Init(HttpApplication context)
{
context.PreSendRequestHeaders += OnPreSendRequestHeaders;
}
public void Dispose() {
}
void OnPreSendRequestHeaders(object sender, EventArgs e)
{
var r = sender as HttpApplication;
r.Response.Headers.Remove("Server");
r.Response.Headers.Remove("X-AspNetMvc-Version");
r.Response.Headers.Remove("X-AspNet-Version");
r.Response.Headers.Remove("X-Powered-By");
}
}
3), Чтобы быть дополнительны уверенный, который некоторые заголовки показывают или "не" разоблачают, можно добавить это к файлу конфигурации
<system.webServer>
<modules>
<add name="HeadersModule " type="MyNamespace.Modules.HeadersModule " />
</modules>
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
<remove name="Server" />
<remove name="X-AspNet-Version" />
<remove name="X-AspNetMvc-Version" />
</customHeaders>
<redirectHeaders>
<clear />
</redirectHeaders>
</httpProtocol>
</system.webServer>
4) Тест все страницы, иначе 404, ошибочные страницы, странные пути, вызвать, они могут пропустить определенные заголовки или показать заголовки, что Вы не ожидали.