首页 > 解决方案 > Antiforgery Token Cookie 仅在嵌入 iframe 时才出现在请求标头中

问题描述

我正在尝试嵌入一个简单的网络应用程序,它将运行 asp.net Core 2.0 的用户输入发布到 iframe 中。我遇到的问题是,在嵌入时,正在生成的请求标头缺少包含 .AspNetCore.Antiforgery.[token] 的 cookie 标头。它是在 iframe 之外按预期生成的。

这会导致 400 错误,因为帖子无法验证令牌。

在 iframe 之外生成的请求标头: 请求标头:没有 IFRAME

在 iframe 内部生成的请求标头: 请求标头:INSIDE IFRAME

有人对防伪令牌库有这个问题吗?

谢谢!!

标签: cookiesiframeasp.net-coreantiforgerytoken

解决方案


结果表明,防伪选项的 cookie 类上的 SameSite 属性需要设置为 None 才能正常工作:

services.AddAntiforgery(options => { options.Cookie.SameSite = SameSiteMode.None; });


推荐阅读