Заголовок Web.config http не применяется к приложению dot net

Я пытаюсь добавить некоторые заголовки HTTP ко всем ответам HTTP, обслуживаемым моим приложением.

Я добавил файл Web.config, как показано ниже:

<?xml version="1.0" encoding="utf-8" ?>
  <configuration>
    <system.webServer>
      <httpProtocol>
        <customHeaders>
          <add name="Content-Security-Policy" value="default-src 'self' some urls...;
           form-action some url... https:;
           upgrade-insecure-requests;" />

          <add name="Strict-Transport-Security" value="max-age=31536000" xdt:Transform="Insert" />

        </customHeaders>
      </httpProtocol>
    </system.webServer>
  </configuration>

Я использую appveyor для строительства и осьминога для развертывания.

Я попытался добавить тег ItemGroup и Content для включения Web.config в проект, но получил сообщение об ошибке, в котором говорилось о наличии дубликата, поэтому я думаю, что Web.config уже включен при сборке.

Когда я пытаюсь получить доступ к странице на моем сайте, заголовки HTTP не добавляются.

1 ответ

Спасибо за комментарии, ребята, особенно Панагиотис, который указал, что ядро ​​dot net не использует веб-конфигурацию.

В итоге я решил эту проблему, добавив задачу для добавления заголовка в StartUp.Configure:

Вы также можете добавить промежуточное программное обеспечение непосредственно в метод Startup.cs Configure.

    app.Use(
        next =>
        {
            return async context =>
            {
                var stopWatch = new Stopwatch();
                stopWatch.Start();
                context.Response.OnStarting(
                    () =>
                    {
                        stopWatch.Stop();
                        context.Response.Headers.Add("X-ResponseTime-Ms", stopWatch.ElapsedMilliseconds.ToString());
                        return Task.CompletedTask;
                    });

                await next(context);
            };
        });

Как было предложено в одном ответе на этот вопрос: добавьте заголовки ответа в промежуточное ПО ASP.NET Core.

Другие вопросы по тегам