Подтвердить что ты не робот

Можно ли добавить HTTP-заголовки ответов в web.config?

В моем приложении мне нужно установить заголовок ответа HTTP. Я хотел бы сделать это в web.config.

4b9b3361

Ответ 1

Решение Наконец, после длительного поиска я нашел решение. Создайте класс с помощью этого кода:

public class myHTTPHeaderModule : IHttpModule
{

    #region IHttpModule Members

    public void Dispose()
    {

    }

    public void Init(HttpApplication context)
    {
        context.EndRequest += new EventHandler(context_EndRequest);
    }

    void context_EndRequest(object sender, EventArgs e)
    {
        HttpResponse response = HttpContext.Current.Response;

        response.AddHeader("Content-Language", "*");

    }

    #endregion
}

(Не спрашивайте меня, зачем использовать это событие, но оно работает..)

Теперь добавьте строку в web.config в разделе HttpModule:

    <httpModules>
        <add type="namespace.myHTTPHeaderModule, assembly name" name="headers" />
        <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </httpModules>

И что это!

Ответ 2

Лучшим способом сделать это будет элемент <customHeaders> файла web.config. Обратите внимание, что это работает только для IIS версии 7 и выше.

Конфигурация для добавления вашего заголовка примера будет:

<configuration>
  <system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="Content-Language" value="*" />
      </customHeaders>
    </httpProtocol>
  </system.webServer>
</configuration>

Для получения дополнительной информации см. Страница настройки конфигурации IIS "Пользовательские заголовки"

Ответ 3

Вы всегда можете добавить элемент в раздел configuration.appSettings.

Затем ваша главная страница, пользовательский класс базовых страниц или конкретная страница могут устанавливать эти заголовки http, читая из web.config

Ответ 4

Я не знаю, что вы можете сделать это на web.config

До сих пор я знаю, что у вас самые лучшие варианты:

  • Создайте HTTPModule, где вы установите заголовок для всех ответов
  • Добавить заголовок в IIS

Здесь у вас есть ссылка на MSDN:

Пользовательский пример HttpModule

Эта ссылка имеет реализацию HTTPModule, которая кажется вам необходимой

http://idunno.org/archive/2006/08/01/252.aspx

Ответ 5

Я считаю, что ни один из ответов здесь не является исчерпывающим, поэтому здесь:

Пожалуйста, см. мое сообщение в блоге о том, как добавить настраиваемый HTTP-модуль для добавления/удаления HTTP-заголовков здесь. Хотя проблема, которую я пыталась решить, была другой, но мне также нужно было добавлять/удалять заголовки HTTP. Суть сообщения в блоге выглядит следующим образом:

Событие для этого - HttpContext.PreSendRequestHeaders. Вы также можете сделать это из настроек IIS или конфигурации IIS, как показано на База знаний IIS. Этот конфигурационный файл (applicationHost.config) находится по адресу % WinDir%\System32\Inetsrv\Config\applicationHost.config для установки по умолчанию.

Ответ 6

Нет встроенной функции, которая делает это

Вы можете сделать HttpModule, который читает заголовки из web.config и добавляет их в ответ.