ASP.NET MVC (.NET 4.5.1) 中的 X-Frame-Options 错误

Cog*_*ire 7 c# asp.net asp.net-mvc asp.net-mvc-4

有谁知道为什么 ASP.NET MVC 控制器返回的响应多次包含 X-FRAME-OPTIONS: SAMEORIGIN 标头?我认为这可能是框架中的一个错误(使用版本 4.5.1)。

似乎为页面上的每个表单添加了一次标题。我的解决方法是禁用 MVC 中的标头并将其添加到 web.config 文件中,如下所示:

Global.asax.cs:

protected void Application_Start()
{
    System.Web.Helpers.AntiForgeryConfig.SuppressXFrameOptionsHeader = true;
}
Run Code Online (Sandbox Code Playgroud)

网页配置:

<system.webServer>
  <httpProtocol>
      <customHeaders>
        <add name="X-Frame-Options" value="SAMEORIGIN" />
      </customHeaders>
  </httpProtocol>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

Tun*_*dey 7

每次调用@Html.AntiForgeryToken() 时都会添加标头。这意味着如果您的页面上有多个表单并且每个表单都包含该调用,您将获得重复的标题。

对该问题的评论引用了此博客:http : //daveonsoftware.blogspot.ru/2015_03_01_archive.html。我认为这是对问题的一个很好的解释。在我的申请中,我选择了选项 #3。