cookies - Antiforgery Token Cookie 仅在嵌入 iframe 时才出现在请求标头中
问题描述
我正在尝试嵌入一个简单的网络应用程序,它将运行 asp.net Core 2.0 的用户输入发布到 iframe 中。我遇到的问题是,在嵌入时,正在生成的请求标头缺少包含 .AspNetCore.Antiforgery.[token] 的 cookie 标头。它是在 iframe 之外按预期生成的。
这会导致 400 错误,因为帖子无法验证令牌。
在 iframe 之外生成的请求标头: 请求标头:没有 IFRAME
在 iframe 内部生成的请求标头: 请求标头:INSIDE IFRAME
有人对防伪令牌库有这个问题吗?
谢谢!!
解决方案
结果表明,防伪选项的 cookie 类上的 SameSite 属性需要设置为 None 才能正常工作:
services.AddAntiforgery(options =>
{
options.Cookie.SameSite = SameSiteMode.None;
});
推荐阅读
- pyspark - 使用 boto3 和 PySpark 的 AWS SageMaker 笔记本列表
- ios - 如何解决 iOS 13.2.3 版本中 TextField 文本不显示的问题?
- proxy - 如何使用spring cloud gateway拦截websocket消息
- mysql - 外键不会创建
- python - GDALException:OGR 失败。尝试将 GeoDjango 几何字段序列化为 GeoJSON 时
- excel - 新的行宏在顶部而不是范围的底部插入
- node.js - 在企业 Nexus 中发布库
- php - Laravel 5.7 | 将第一个函数中用于构建视图的数据/变量传递给第二个函数以生成 dompdf 文件
- python - 在一个 pyhton 模块中定义的命名元组无法被另一个 python 模块识别
- c++ - 在 C++ 中使用特定密码设置 openssl 客户端