我正在尝试使用以下方法仅删除特定控制器操作的“X-Frame-Options”头:
protected override void OnResultExecuting(ResultExecutingContext filterContext)
{
filterContext.HttpContext.Response.Headers.Remove("X-Frame-Options");
base.OnResultExecuting(filterContext);
}
不过,这似乎根本没有用。我在我的网站上唯一能使它发挥作用的方法是在global.asax下添加此代码。我相信我在ASP.NET MVC/IIS管道中错过了正确的步骤,允许我覆盖该标头的IIS设置。这可能吗?
protected void Application_EndRequest()
{
Response.Headers.Remove("X-Frame-Options");
}
至于为什么我想做这个,我正在构建一个小部件,用户可以通过iframe在自己的个人网站上使用,并允许他们将信息发布回我们的网站。我意识到关闭此标头存在安全隐患,虽然我欢迎任何有关如何减轻这些风险的建议,但我只想知道我所要求的是否可能。
filterContext.HttpContext.Response.Headers
进行了快速监视,但只有两个标题Server
和X-AspNetMvc-Version
。你有什么想法吗? - Ammar Khan