You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置.NET Core 6站点仅允许指定域名嵌入iframe?

问题描述

我尝试将自有站点 secondsite.com 嵌入到 mainsite.com 的iframe中,在mainsite.com页面使用了如下HTML代码:

<iframe src="https://secondsite.com"></iframe>

但页面加载时控制台报错:

Refused to display 'https://secondsite.com' in a frame because it set 'X-Frame-Options' to 'sameorigin'.

请问需要在secondsite的.NET Core 6项目中添加什么代码,才能让它仅允许被mainsite.com的iframe嵌入?是否可以在Program.cs中配置实现全局生效?

解决方案

可以通过在.NET Core 6项目的Program.cs中添加全局中间件,为所有响应设置Content-Security-Policy头来实现需求,代码如下:

app.Use(async (context, next) =>
{
    context.Response.Headers.Add("Content-Security-Policy", "default-src 'self'; frame-ancestors 'self' https://mainsite.com;");
    await next();
});

说明

  • frame-ancestors 'self' https://mainsite.com 指定了允许嵌入当前站点的父页面来源:'self' 表示站点自身可以嵌入自己,https://mainsite.com 则允许目标站点嵌入。
  • 该中间件会对所有请求的响应自动添加此头,实现全局生效,无需单独配置每个页面。

内容的提问来源于stack exchange,提问作者moonybaby

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 14:42:41