Мне нужно удалить заголовок X-Frame-Options: SAMEORIGIN
из некоторых моих действий, которые должны отображать содержимое для iframe. Пока он добавляется к запросам по умолчанию, я отключил его в Startup.cs
: services.AddAntiforgery(o => o.SuppressXFrameOptionsHeader = false);
. Тогда я написал простой промежуточное программное обеспечение:ASP.Net Core: X-Frame-Options странное поведение
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
ответ в ответе?