Проблема похожа на описанную здесь , но из-за .net Core. И решение тоже похоже.
Вы также можете использовать рекомендации, сделанные @ user770 в комментариях к вопросу. Однако это не решает блок iframe. И ни один из этих ответов не объясняет, почему обновление страницы решило проблему. Однако это не очень хороший опыт для пользователей.
Таким образом, решение простое и может быть реализовано с помощью кода, что делает его более безопасным, если кто-либо пытается перезаписать установку X-Frame-Otions на вашем сервере. Любая множественная установка будет выведена в 'deny'.
В файле startup.cs вашего проекта вы должны добавить это, чтобы ядро .net не добавляло параметр sameorigin автоматически.
public void ConfigureServices(IServiceCollection services)
{
//YOU CAN HAVE SOME CODE HERE
services.AddAntiforgery(o => o.SuppressXFrameOptionsHeader = true);
}
Однако это может привести к риску на вашем сайте, и этот сценарий предназначен для применения, когда у вас есть контроль над обоими сайтами и обоими доменами.
Чтобы обезопасить сайт, вы должны установить параметр X-frame-options, чтобы разрешить домен, который вы хотите. Снова в файле startup.cs выполните следующие действия.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
//YOU MAY HAVE SOME CODE HERE
app.Use(async (context, next) =>
{
context.Response.Headers.Add("X-Frame-Options", "ALLOW-FROM http://*.MYCONTROLLEDDOMAIN.COM https://*.MYCONTROLLEDDOMAIN.COM");
await next();
});
}
Таким образом, вы позволите вашему домену запрашивать этот сайт в пределах iframe.