13

ASP.NET と IIS によって生成され、ASP.NET WebAPI サービスからの応答で返される特定のヘッダーをクロークする必要があります。クロークする必要があるヘッダーは次のとおりです。

  • サーバ
  • X-AspNet-バージョン
  • X-AspNetMvc-バージョン
  • X-Powered-By

このサービスは以前は WCF でホストされていましたが、クローキングは PreSendRequestHeaders をサブスクライブし、HttpContext.Current.Response.Headers を操作することによって HttpModule で行われました。ASP.NET WebAPI では、すべてがタスク ベースになったため、HttpContext.Current は null です。メッセージ ハンドラーを挿入して、返された HttpResponseMessage を操作しようとしましたが、その段階でヘッダーが存在しませんでした。X-Powered-By は IIS 設定で削除できますが、残りを削除するにはどのような方法が推奨されますか?

4

4 に答える 4

11

問題は、それぞれが異なるポイントで追加されることです。

  • Server:IISによって追加されました。HttpModuleを使用して削除したようですが、オフにできるかどうかは正確にはわかりません。
  • X-AspNet-VersionHttpResponse:クラスのフラッシュ時にSystem.Web.dllによって追加されました
  • X-AspNetMvc-VersionMvcHandlerSystem.Web.dllに追加されました。オーバーライドできるので、これで問題ありません。
  • X-Powered-ByIISによってですが、あなたが言ったようにオフにすることができます。

私はあなたの最善の策はまだHttpModulesを使用していると思います。

于 2012-06-22T12:16:34.887 に答える
1

IIS7 / Azure を使用している場合は、次をご覧ください。

UrlScan を使用しない Azure/IIS7 での過剰な HTTP 応答ヘッダーの削除/非表示/無効化

HttpModules を使用せずにこれらのヘッダーを無効にする最良の方法を示します。

于 2012-10-09T16:12:58.103 に答える