我正在尝试删除X-Frame-Options SAMEORIGIN
标头或将其设置为ALLOWALL
。
我已经在web.config
和站点的IIS的Http响应标头中对其进行了设置,但仍然在浏览器中获得X-Frame-Options SAMEORIGIN
,并且iframe内容未呈现。
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
<add name="Cache-Control" value="public" />
<add name="Access-Control-Allow-Origin" value="*" />
<add name="X-Frame-Options" value="ALLOWALL" />
</customHeaders>
</httpProtocol>
在Firefox和Chrome中是相同的。
在其他地方我应该寻找它还是可以修改它?
答案 0 :(得分:0)
转到Global.asax.cs中的Application_Start()
并添加此行
System.Web.Helpers.AntiForgeryConfig.SuppressXFrameOptionsHeader = true;
请注意,尽管这意味着任何人都可以在iframe中使用您的应用程序。因此,值得使用以下代码添加新文件:
using System.Web.Mvc;
namespace MyApplication
{
public class NoIframeAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
filterContext.HttpContext.Response.Headers.Set("X-Frame-Options", "SAMEORIGIN");
}
}
}
将以下行添加到FilterConfig.cs中的RegisterGlobalFilters方法中:
filters.Add(new NoIframeAttribute());
现在它可以安全地返回到您的应用程序中了,您可以通过以下方式在应用程序中的任何位置删除xframe选项:
Response.Headers.Remove("X-Frame-Options");