如何在asp.net CORE应用程序中删除视图的X-FRAME-OPTIONS



一个类似的问题已经被问到这里,但我不确定如何解决这个问题。

我有一个带有许多视图的web应用程序,其中一些视图在另一个使用iframe的软件中使用。

其中一些视图可以工作,但是我最近添加了两个新的视图,由于某种原因,我不能在iframe中使用它们。仔细观察,我发现这两个新视图将X-FRAME-OPTIONS值添加为SAMEORIGIN,这阻止了它们在iframe中显示。

两个问题:

  1. 为什么只有新视图有这个新的X-FRAME-OPTIONS值为SAMEORIGIN?
  2. 我如何从视图中删除这些标题?

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

下面的不工作,自动添加X-IFRAME-OPTIONS头:

<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 core中,您可以将以下代码添加到Startup.cs中的ConfigureServices方法中以跳过限制:

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

最新更新