有什么方法可以使 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>
我相信你可以使用
<location>
元素来完成这项工作:
<configuration>
<!-- ... -->
<location path="/Path/To/Exclude">
<system.webServer>
<httpProtocol>
<customHeaders>
<remove name="X-Frame-Options" />
</customHeaders>
</httpProtocol>
</system.webServer>
</location>
</configuration>