<p>Les modifications suivantes vous permettent de supprimer ces en-têtes de réponse HTTP dans Azure <em>sans</em> écrire un HttpModule personnalisé.</p>
<p>La plupart des informations sur le net sont obsolètes et impliquent UrlScan (qui a depuis été intégré dans IIS7, mais avec l’option <code>RemoveServerHeader=1</code> supprimée). Ci-dessous se trouve la solution la plus propre que j’ai trouvée (grâce à <a href="http://www.davidaiken.com/2011/10/04/hiding-response-headers/">ce blog</a>, <a href="https://stackoverflow.com/a/7338448/590558">cette réponse</a>, et <a href="http://www.bugwriter.me/2010/01/removing-unnecessary-http-header-server.html">ce blog</a> combinés).</p>
<p>Pour supprimer <strong>Server</strong>, allez dans Global.asax, trouvez/créez l’événement <code>Application_PreSendRequestHeaders</code> et ajoutez ce qui suit (grâce à <a href="https://stackoverflow.com/a/7338448/590558">BK</a> et <a href="http://www.bugwriter.me/2010/01/removing-unnecessary-http-header-server.html">ce blog</a>, cela ne plantera pas non plus sur Cassini / en développement local) :</p>
<p>Modification d’avril 2014 : Vous pouvez utiliser les événements PreSendRequestHeaders et PreSendRequestContext avec les modules IIS natifs, mais ne les utilisez pas avec les modules managés qui implémentent IHttpModule. La définition de ces propriétés peut causer des problèmes avec les <a href="http://www.asp.net/aspnet/overview/web-development-best-practices/what-not-to-do-in-aspnet,-and-what-to-do-instead#presend">requêtes asynchrones</a>. La version correcte est d’utiliser l’événement BeginRequest.</p>
<pre><code class="lang-auto"> protected void Application_BeginRequest(object sender, EventArgs e)
{
var application = sender as HttpApplication;
if (application != null && application.Context != null)
{
application.Context.Response.Headers.Remove("Server");
}
}
</code></pre>
<p>Pour supprimer <strong>X-AspNet-Version</strong>, dans le web.config trouvez/créez <code><system.web></code> et ajoutez :</p>
<pre><code class="lang-auto"> <system.web>
<httpRuntime enableVersionHeader="false" />
...
</code></pre>
<p>Pour supprimer <strong>X-AspNetMvc-Version</strong>, allez dans Global.asax, trouvez/créez l’événement <code>Application_Start</code> et ajoutez une ligne comme suit :</p>
<pre><code class="lang-auto"> protected void Application_Start()
{
MvcHandler.DisableMvc
(Réponse tronquée)
</code></pre>