首页 > 解决方案 > ASP.Net 核心防伪拒绝从 Iframe 提交表单

问题描述

我有一个 asp.net 核心应用程序。应用程序的一种形式嵌入在不同应用程序的 iframe 中,在不同的应用程序上运行。在我的配置中,我抑制了相同的原始X-Frame标头,因此我可以将表单提交到 iframe。

services.AddAntiforgery(options =>
            {
                options.SuppressXFrameOptionsHeader = true;
            });

但是,当我通过 iframe 提交表单时,我收到一个错误的请求错误,尽管我可以看到 CSRF 令牌已正确发送。如果我删除

[ValidateAntiForgeryToken]

来自控制器操作的属性我可以通过 iframe 提交表单。我究竟做错了什么?

标签: asp.net-coreiframecsrf-protectioncsrf-token

解决方案


我找到了答案

https://stackoverflow.com/a/52709829/9931213

您需要添加

options.Cookie.SameSite = SameSiteMode.None;

添加到您的AddAntiforgery选项。


推荐阅读