В моем приложении мне нужно установить заголовок ответа HTTP. Я хотел бы сделать это в web.config.
Можно ли добавить HTTP-заголовки ответов в web.config?
Ответ 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, которая кажется вам необходимой
Ответ 5
Я считаю, что ни один из ответов здесь не является исчерпывающим, поэтому здесь:
Пожалуйста, см. мое сообщение в блоге о том, как добавить настраиваемый HTTP-модуль для добавления/удаления HTTP-заголовков здесь. Хотя проблема, которую я пыталась решить, была другой, но мне также нужно было добавлять/удалять заголовки HTTP. Суть сообщения в блоге выглядит следующим образом:
Событие для этого - HttpContext.PreSendRequestHeaders. Вы также можете сделать это из настроек IIS или конфигурации IIS, как показано на База знаний IIS. Этот конфигурационный файл (applicationHost.config) находится по адресу % WinDir%\System32\Inetsrv\Config\applicationHost.config для установки по умолчанию.
Ответ 6
Нет встроенной функции, которая делает это
Вы можете сделать HttpModule
, который читает заголовки из web.config и добавляет их в ответ.