有条件地在 web.config 中添加标头

问题描述 投票:0回答:1

有什么方法可以使 web.config 中的自定义标头规则例外吗?

我在 web.config 中有标题 X-Frame-Options,它为所有文件添加了它。

<httpProtocol>
  <customHeaders>
    <add name="X-Frame-Options" value="SAMEORIGIN" />
  </customHeaders>
</httpProtocol>

我想从控制器中的此规则中排除一些页面。

我无法删除控制器中的标头,因为 web.config 在控制器执行后添加了它。

我也不想从 web.config 中删除标头,然后将其添加到控制器或所有页面的控制器属性中,因为这只会为控制器返回的 HTML 文件添加它,而不是静态的HTML 文件、js 文件、图片等等。

我不知道如何在 web.config 中添加标头有条件,如果有可能我可以在控制器中添加一个临时标头,然后编写类似的内容

<httpProtocol>
  <customHeaders>
    if(!header("allowembedding")){
      <add name="X-Frame-Options" value="SAMEORIGIN" />
    }
    <remove name="allowembedding" />
  </customHeaders>
</httpProtocol>
c# asp.net-mvc http https web-config
1个回答
0
投票

我相信你可以使用

<location>
元素来完成这项工作:

<configuration>
  <!-- ... -->

  <location path="/Path/To/Exclude">
    <system.webServer>
      <httpProtocol>
        <customHeaders>
          <remove name="X-Frame-Options" />
        </customHeaders>
      </httpProtocol>
    </system.webServer>
  </location>
</configuration>
© www.soinside.com 2019 - 2024. All rights reserved.