如何为 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 中显示。
两个问题:
- 只有新视图具有 SAMEORIGIN 这个新 X-FRAME-OPTIONS 值的原因是什么?
- 如何从视图中删除这些 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);
有人问过类似的问题
我有一个包含许多视图的 Web 应用程序,其中一些视图用于另一个使用 iframe 的软件。
其中一些视图有效,但我最近添加了两个新视图,但由于某种原因,我无法在 iframe 中使用它们。仔细检查后,我发现这两个新视图将 X-FRAME-OPTIONS 值添加为 SAMEORIGIN,这会阻止它们在 iframe 中显示。
两个问题:
- 只有新视图具有 SAMEORIGIN 这个新 X-FRAME-OPTIONS 值的原因是什么?
- 如何从视图中删除这些 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);