我正在尝试为我的应用程序提供的所有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标头。
答案 0 :(得分:0)
感谢评论人员,尤其是Panagiotis,他们指出dot net core不使用网络配置。
我最后通过在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);
};
});
正如在这个问题的一个答案中所建议的那样:Add Response Headers to ASP.NET Core Middleware