Antiforgery Token Cookie 仅在嵌入到 Iframe 中时才出现在请求标头中

Fly*_*ini 4 cookies iframe antiforgerytoken asp.net-core

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

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

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

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

有人在防伪令牌库中遇到过这个问题吗?

谢谢!!

Fly*_*ini 6

事实证明,需要将 cookie 类上的 SameSite 属性设置为防伪选项的 None 才能工作:

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