我已经检查了IIS 10.0中的http标头部分,并且已经检查了Web配置文件,在任何地方都找不到该选项,但是某处将X-Frame-Option值设置为SAMEORIGIN:
拒绝在框架中显示“ https://example.co.uk/”,因为它已设置 从“ X-Frame-Options”到“ sameorigin”。
当我将X-Frame-Options添加到web.config中时:
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
<add name="X-Frame-Options" value="allow-from https://example.co.uk/" />
</customHeaders>
</httpProtocol>
我在控制台中得到以下内容:
拒绝在框架中显示“ https://example.co.uk”,因为它已设置 具有冲突值的多个“ X-Frame-Options”标头 (“ SAMEORIGIN,允许从https://example.co.uk/开始”)。退回 “拒绝”。
我确实需要将iframe添加到另一个网站上,因此需要此当前网站才能显示它。我对这两个站点/服务器都有完全访问权限。
该网站内置于c#.Net中,也没有在其中设置任何响应标头-无论如何从我的搜索开始!
请有人解释这是怎么发生的吗?
谢谢。
答案 0 :(得分:1)
对于遇到此问题的任何人,我希望这会有所帮助。 MVC 4 +自动将x-frame-option添加为sameorigin。因此,如果您在IIS或配置中进行设置,则它将失败,因为它将同时获取两个值。我的建议是不要重写它,而是考虑另一种方法,也许是一个API来完成另一个站点上的登录页面?如今,大多数站点无论如何都只允许使用sameorgin。
但是,如果确实需要覆盖它,则可以在Application _Start()方法下的global.asax.cs文件中添加以下内容:
System.Web.Helpers.AntiForgeryConfig.SuppressXFrameOptionsHeader = true;
然后,您可以在IIS中或直接在站点web.config中设置所需的值。