Comment puis-je supprimer des en-têtes à partir de mon site Web API de réponse?
Nouvelle API Web 2.0 projet donc, nous avons le plein contrôle sur l'ensemble de la requête /réponse pipeline.
Comment supprimer le "X" en-têtes de réponse envoyé par ASP.NET l'API Web de la réponse? Plus précisément, à l'instant, et toujours sujettes à changement, nous voulons supprimer "X-AspNet-Version
", "X-Powered-By
", et "X-SourceFiles
".
Nous avons essayé result.Headers.Remove("X-AspNet-Version");
avant de retourner le HttpResponseMessage
à partir du contrôleur. Cela ne fonctionne pas comme les en-têtes apparaissent encore dans un violon. Je n'ai pas trouver les en-têtes n'importe où sur la HttpResponseMessage
objet. Pour moi, ce qui indiquait que je peut avoir besoin de creuser plus profondément dans le pipeline, mais je ne suis pas sûr où commencer, ou si c'est correct.
Ne vous inquiétez pas à propos de "X-SourceFiles", comme ils ne sont envoyés qu'aux demandes de localhost.
OriginalL'auteur DenaliHardtail | 2014-08-21
Vous devez vous connecter pour publier un commentaire.
Solution-1
De cette réponse
Le "powered by" est un en-tête personnalisé dans IIS. Changer cela dépend de la version de IIS que vous utilisez. Pour des informations sur la façon de modifier ou de supprimer, voir ici:
Pour supprimer le MVC en-tête, Dans le Global.asax, dans l'Application de Début de l'événement:
Mettre cela dans le web.config de se débarrasser de la X-AspNet-Version-tête:
Solution-2
Vous pouvez modifier un en-tête ou quoi que ce soit dans
Application_EndRequest()
essayer cetteMvcHandler.DisableMvcResponseHeader = true;
etx-powered-by
n'était pas indiqué dans la liste des en-têtes dansApplication_EndRequest
OriginalL'auteur Emdadul Sawon
Si vous utilisez Owin, vous pouvez ajouter ceci à votre démarrage de classe pour supprimer le "Serveur" en-tête.
Je suis en utilisant WebApi2 avec OWIN et cela ne fonctionne pas
OriginalL'auteur Ger Groot
Comme l'a souligné peter Glissant, cette question a été répondu à Comment faire pour supprimer ASP.Net MVC par Défaut en-Têtes HTTP?
Une autre solution serait de modifier la demande à la EndRequest signal comme indiqué ici
http://tech.trailmax.info/2013/02/remove-server-http-header-from-asp-net-mvc-application/
OriginalL'auteur Joona Romppanen
Solution Alternative, j'ai mis en place est de définir votre propre module Http et supprimer des en-têtes dans OnPreSendRequestHeaders gestionnaire. Cela supprime les en-têtes de tous les ASP.NET et API Web demandes, ainsi que des demandes de contenu. Et vous pouvez les réutiliser dans de multiples projets.
OriginalL'auteur Tushar Kesare