Приложения Azure API удаляют стандартные заголовки сервера

У меня есть ASP.net WebApi, развернутый в Azure с помощью приложений API. Чтобы отметить еще один пункт из мистического списка, который является лучшей практикой, я хотел бы удалить стандартные заголовки сервера из всех HTTP-запросов (x-powered-by, server, x-aspnet-version). Мой файл web.config приведен ниже в соответствии с предложенной конфигурацией здесь

При развертывании моего приложения в веб-приложении Azure заголовки успешно удаляются. Однако похоже, что повторение одного и того же развертывания в приложении Azure API не соответствует стандартной конфигурации web.config для этого, и приведенные выше заголовки по-прежнему присутствуют во всех HTTP-запросах.

Кто-нибудь знает, это просто еще не поддерживается или есть альтернативный способ сделать это? Я могу только думать, что шлюз или другое устройство не соблюдает удаление.

<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.5.2" />
    <httpRuntime enableVersionHeader="false"  />
  </system.web>
  <system.webServer>
    <handlers>
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <remove name="OPTIONSVerbHandler" />
      <remove name="TRACEVerbHandler" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers>
    <security>
      <requestFiltering removeServerHeader ="true"></requestFiltering>
    </security>
    <httpProtocol>
      <customHeaders>
        <clear />
        <remove name="X-Powered-By"/>
      </customHeaders>
    </httpProtocol>
  </system.webServer>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
        <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

person BMac    schedule 19.10.2015    source источник


Ответы (1)


Мы изучаем это и исправим. Тем временем вы можете перейти к настройке приложения для шлюза и изменить его файл web.config. Шаги:

  1. Перейдите к YOURGATEWAYNAME.scm.azurewebsites.net.
  2. Перейдите на сайт\wwwroot
  3. Прокрутите до web.config и нажмите кнопку редактирования слева. Вы сможете редактировать этот файл.

В качестве альтернативы, если вы не используете какие-либо специальные функции приложений API, вы можете развернуть свой веб-API как веб-приложение.

person Mohit Srivastava    schedule 20.10.2015
comment
Привет @Mohit. Я попробовал это, отредактировав web.config шлюза, чтобы он был таким же, как и опубликованный выше через KUDO, однако стандартные заголовки все еще присутствуют при просмотре запросов через Fiddler. Я планирую использовать некоторые из конкретных функций приложений API, поэтому, если это вообще возможно, я пытаюсь заставить это работать с приложениями API, а не с веб-приложениями. - person BMac; 20.10.2015