You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core中能否通过配置文件设置HSTS头?

ASP.NET Core 6.0 通过配置文件设置HSTS

可以实现,ASP.NET Core本身没有提供直接对应HSTS的配置节,但你可以通过配置绑定的方式,把appSettings.json里的自定义配置映射到HstsOptions,从而避免硬编码配置参数。

具体实现步骤:

  1. 在appSettings.json中添加HSTS配置
    在配置文件里新增自定义的HSTS配置节点,示例如下:

    {
      "HstsSettings": {
        "MaxAge": "365.00:00:00",
        "IncludeSubDomains": true,
        "Preload": false,
        "ExcludedHosts": [
          "localhost",
          "test.example.com"
        ]
      }
    }
    
  2. 在Program.cs中绑定配置到HstsOptions
    通过Configure<T>方法将配置节点绑定到HSTS的选项类,之后正常启用HSTS即可:

    var builder = WebApplication.CreateBuilder(args);
    
    // 绑定自定义HSTS配置到HstsOptions
    builder.Services.Configure<Microsoft.AspNetCore.HttpOverrides.HstsOptions>(
        builder.Configuration.GetSection("HstsSettings"));
    
    var app = builder.Build();
    
    // 仅在非开发环境启用HSTS,避免本地开发受影响
    if (!app.Environment.IsDevelopment())
    {
        app.UseHsts();
    }
    
    // 其他中间件配置...
    app.Run();
    

注意事项:

  • 务必只在生产/非开发环境启用UseHSTS,否则本地开发时浏览器会强制使用HTTPS,可能导致调试不便。
  • MaxAge的值要符合TimeSpan的解析格式,比如"365.00:00:00"表示HSTS缓存时长为1年。
  • ExcludedHosts列表里可以添加不需要应用HSTS规则的主机,比如本地开发用的localhost。

内容的提问来源于stack exchange,提问作者Computer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 15:12:07