如何为 ASP NET CORE 应用程序中的视图删除 X-FRAME-OPTIONS

How to remove X-FRAME-OPTIONS for views inside ASPNET CORE application

有人问过类似的问题,但我不确定如何在 dot net core 中解决这个问题。

我有一个包含许多视图的 Web 应用程序,其中一些视图用于另一个使用 iframe 的软件。

其中一些视图有效,但我最近添加了两个新视图,但由于某种原因,我无法在 iframe 中使用它们。仔细检查后,我发现这两个新视图将 X-FRAME-OPTIONS 值添加为 SAMEORIGIN,这会阻止它们在 iframe 中显示。

两个问题:

  1. 只有新视图具有 SAMEORIGIN 这个新 X-FRAME-OPTIONS 值的原因是什么?
  2. 如何从视图中删除这些 header?

编辑

我发现只有当视图包含绑定到 asp 操作的表单数据时才会发生这种情况。

以下不起作用,自动添加 X-IFRAME-OPTIONS header:

<form asp-action="myAspAction_1" enctype="multipart/form-data" id="my-form">
      <div style="text-align: center; margin: auto;">
           <label>Choose file: </label><input asp-for="myAspAction_2" onchange="changeFnc()" style="width: 200px; text-align: center; margin: auto;" />
      </div>
      <input id="input-box-1" type="submit" value="My value" disabled="true" style="width:200px; margin:20px" />
 </form>

如果我删除 asp-action 和 asp-for,它会起作用:

<form enctype="multipart/form-data" id="my-form">
          <div style="text-align: center; margin: auto;">
               <label>Choose file: </label><input onchange="changeFnc()" style="width: 200px; text-align: center; margin: auto;" />
          </div>
          <input id="input-box-1" type="submit" value="My value" disabled="true" style="width:200px; margin:20px" />
     </form>

在 asp.net 核心中,您可以将以下代码添加到 Startup.cs 中的 ConfigureServices 方法中以跳过限制:

services.AddAntiforgery(o => o.SuppressXFrameOptionsHeader = true);