我有一个 ASP.NET 核心应用程序。应用程序的一种形式是嵌入在不同应用程序的 iframe 内,并在不同的应用程序上运行。在我的配置中,我已经抑制了相同的起源X-Frame
header 以便我可以提交 iframe 表单。
services.AddAntiforgery(options =>
{
options.SuppressXFrameOptionsHeader = true;
});
但是,当我通过 iframe 提交表单时,我收到错误请求错误,尽管我可以看到 CSRF 令牌已正确发送。如果我删除
[ValidateAntiForgeryToken]
控制器操作的属性我可以通过 iframe 提交表单。我究竟做错了什么?
我找到了这个问题的答案
https://stackoverflow.com/a/52709829/9931213 https://stackoverflow.com/a/52709829/9931213
你需要添加
options.Cookie.SameSite = SameSiteMode.None;
to your 添加防伪选项。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)