6
iframe用のコンテンツをレンダリングする必要があるアクションから、X-Frame-Options: SAMEORIGIN
ヘッダーを削除する必要があります。デフォルトでリクエストに追加されている限り、Startup.cs
:services.AddAntiforgery(o => o.SuppressXFrameOptionsHeader = false);
で無効にしました。結果フィルタ属性で装飾され、クロスドメインの要求に答えるために必要なASP.Net Core:X-Frame-Options strange behavior
app.Use(async (context, next) =>
{
context.Response.Headers.Add("X-Frame-Options", "SAMEORIGIN");
await next();
});
アクション:
public class SuppresXFrameOptionFilter : ResultFilterAttribute
{
public override async Task OnResultExecutionAsync(ResultExecutingContext context,
ResultExecutionDelegate next)
{
context.HttpContext.Response.Headers.Remove("X-Frame-Options");
await next();
}
}
はここweirednessが来るそれから私は、単純なミドルウェアを書きました。最初にクロスドメインリクエストが失敗したのは、フィルタが最後に期待どおりに機能していても、
X-Frame-Options: SAMEORIGIN
がまだ応答に存在するからです(私は
next()
のミドルウェアで確認しました。 F5キーを押すとヘッダーは応答しなくなり、すべてが正常に動作します。それは
X-Frame-Options
ヘッダーでのみ発生し、カスタムメッセージは正しく削除されます。 削除された
X-Frame-Options
が応答に再び現れるのは何ですか?