无法识别的属性“ sameSite”请注意,对于Chrome 80+版本,属性名称区分大小写

问题描述

我有一个应用程序runnig,其中的内容在iframe中打开,这被视为跨站点方案。

我知道最新的chrome 80+版本更新,其中所有cookie均认设置为 SameSite = Lax 。我的应用程序在旧版chrome上正常运行,并在web.config文件添加了以下标记

<httpCookies requireSSL="true" sameSite="None"/>

现在添加了此标签后,出现错误“无法识别的属性'sameSite'。请注意,属性名称区分大小写” 。 没有标签,我的应用程序就会加载,但是由于它在iframe中打开,因此无法浏览内容

根据博客here,要求我添加SameSite = None;保护标签,但添加标签本身会出错。我有什么遗漏吗?

作为一种解决方法认情况下,我已从标志 chrome:// flags /#same-site-by-default-cookies 中禁用了SameSite Cookie,现在看来工作正常。 有没有一种方法可以通过在web.config添加标签而不是显式进行客户端更改来实现。为什么我的sameSite属性会出现无法识别的错误

解决方法

经过大量研究找到了一种从代码隐藏中做到这一点的方法

HttpCookie Cookie = new HttpCookie("Cookie")
{
   Value = "value to be stored,Secure = true,HttpOnly = true
}; 

这会将 cookie 添加到上下文中,http 和安全标志为 true。

该问题是由于在最近的 chrome 更新后,同一个站点在默认情况下被指定为“Lax”。由于我的网站是在 iframe 中打开的,因此由于跨站点请求,cookie 没有被传递。将其更改为 none 解决了问题。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...