asp.net-core - ASP.Net 核心防伪拒绝从 Iframe 提交表单
问题描述
我有一个 asp.net 核心应用程序。应用程序的一种形式嵌入在不同应用程序的 iframe 中,在不同的应用程序上运行。在我的配置中,我抑制了相同的原始X-Frame
标头,因此我可以将表单提交到 iframe。
services.AddAntiforgery(options =>
{
options.SuppressXFrameOptionsHeader = true;
});
但是,当我通过 iframe 提交表单时,我收到一个错误的请求错误,尽管我可以看到 CSRF 令牌已正确发送。如果我删除
[ValidateAntiForgeryToken]
来自控制器操作的属性我可以通过 iframe 提交表单。我究竟做错了什么?
解决方案
我找到了答案
https://stackoverflow.com/a/52709829/9931213
您需要添加
options.Cookie.SameSite = SameSiteMode.None;
添加到您的AddAntiforgery选项。
推荐阅读
- postman - 我应该使用哪个凭证来生成令牌,然后使用 Postman 在 Keycloak DB 中创建用户?
- ios - Flutter 将不再使用 Firebase 在 iOS 上构建
- python - 从 YouTube-DL 下载的音频文件已损坏
- reactjs - 如何从材质ui中的`Select`获取`MenuItem`中的自定义数据属性值?
- python - Python - 使用类型提示时出现 NameError
- javascript - 当父状态被子状态更改时,useEffect 没有第一次被调用
- java - 如何在原型作用域bean上应用spring aop方面
- .net - NodaTime 2.x 与 3.x 中的午夜转换
- javascript - 在多步表单上渲染 Livewire 组件中的条纹元素
- jestjs - 为什么 Jest 在没有抛出异常的情况下说有断言调用?