ОБНОВЛЕНИЕ
Когда запрашивается URL-адрес http://
, IIS обработает его, на этот раз без кода. Поэтому мы не можем контролировать его с помощью кода, мы можем установить его только на сервере, например, в некоторых скриптах или инструментах. Но на Azure у нас нет возможности напрямую работать в качестве физического сервера, поэтому после исследования я предлагаю использовать Front Door
для решения этой проблемы. Лучше было бы скрыть информацию о сервере через прокси.
После моего теста информация о сервере скрыта, вы можете обратиться к этому документу . Из рисунка видно, что нет запроса на перенаправление 301 и информации о сервере в других запросах.
![enter image description here](https://i.stack.imgur.com/omLBj.png)
PRIVIOUS
Вам необходимо изменить файл Global.asax.cs
и Web.config
в вашей программе.
В Global.asax.cs.
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
MvcHandler.DisableMvcResponseHeader = true;
PreSendRequestHeaders += Application_PreSendRequestHeaders;
}
protected void Application_PreSendRequestHeaders(object sender, EventArgs e)
{
//HttpContext.Current.Response.Headers.Remove("Server");
HttpContext.Current.Response.Headers.Set("Server","N/A");
}
}
И в Web.config.
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" >
</modules>
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>
</system.webServer>
Тогда вы можете развернуть свое приложение. После вышеупомянутой модификации кода, доступ к интерфейсу или ресурсам stati c может видеть, что информация сервера изменена, конечно, она также может быть удалена с помощью Remove
.
Вы также можете обрабатывать специальные события по коду http статуса.
protected void Application_PreSendRequestHeaders(object sender, EventArgs e)
{
//HttpContext.Current.Response.Headers.Remove("Server");
int StatusCode= HttpContext.Current.Response.StatusCode;
// handle like http status code 301
HttpContext.Current.Response.Headers.Set("Server","N/A");
}
![enter image description here](https://i.stack.imgur.com/E8z7A.png)