在 2020 年 2 月针对 SameSite 相关问题进行 Chrome 更新后,即使遵循了 .NET 的 Web 配置建议,我的 IFrame 仍然存在问题
After Chrome update in Feb 2020 for SameSite related issue, my IFrame still has issues even after following web config suggestions for .NET
所以客户的客户问题在 IFrame 中:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>HTML Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<p>Below is an iframe.</p>
<iframe src="*LinkWithDirectAuthenticationHere*" width = "800" height = "800">
<p>iframes are not supported by your browser.</p>
</iframe></body>
</html>
一旦用户通过身份验证,用户将被重定向回登录页面,因为包含已登录用户详细信息的本地存储因网站位于 IFrame 中(自动注销)而返回为空。这在 Chrome 2020 年 2 月更新之前没问题。
我用的googlechrome版本是80.0.3987.149
出于某种原因,即使我的其他同事有相同的版本,他们也没有遇到这个问题。已经卸载了我所有的插件并清除了缓存并注销 chrome,问题仍然存在于我的浏览器中(我是目前唯一能够复制我客户的客户问题的人)
在我的浏览器中设置后,我没有再遇到这个问题:
但是,这不是正确的解决方案。所以我尝试在我的 .NET 应用程序上执行以下操作:
- 将框架从 4.5.2 更新到 4.7.2
- Bruteforce 添加到 header(目前)
- 添加了这个但还不知道预先存在的选项应该是什么:
- 在网络配置中添加了以下内容:
- 不确定为什么不允许使用此属性:
我在本地主机上测试应用程序时收到这些警告:
请注意,默认情况下禁用 samesite cookie 解决了这个问题,但我必须采取措施,让用户不必更改他们的设置并像以前一样继续。
补充说明:
- 我在 Internet Explorer、FireFox 和 Opera 上没有遇到这个问题
- link 不在 IFrame 上时没有问题
目前 Chrome 仅执行新政策 for subset of users 因此您的同事可能会看到不同的结果。
我假设您已经检查了 Chrome Application => Storage => Cookies
视图并确认您的 cookie 返回并设置了 SameSite=None
和 Secure
?
如果是这样,您可能需要将 iframe 移至 https
(查看您的屏幕截图,它现在似乎是 HTTP),因为 Secure
指示 Chrome 仅发送此饼干 over secure connection。要测试这是否是您的情况,
尝试禁用 chrome://flags/#cookies-without-same-site-must-be-secure
所以客户的客户问题在 IFrame 中:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>HTML Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<p>Below is an iframe.</p>
<iframe src="*LinkWithDirectAuthenticationHere*" width = "800" height = "800">
<p>iframes are not supported by your browser.</p>
</iframe></body>
</html>
一旦用户通过身份验证,用户将被重定向回登录页面,因为包含已登录用户详细信息的本地存储因网站位于 IFrame 中(自动注销)而返回为空。这在 Chrome 2020 年 2 月更新之前没问题。
我用的googlechrome版本是80.0.3987.149
出于某种原因,即使我的其他同事有相同的版本,他们也没有遇到这个问题。已经卸载了我所有的插件并清除了缓存并注销 chrome,问题仍然存在于我的浏览器中(我是目前唯一能够复制我客户的客户问题的人)
在我的浏览器中设置后,我没有再遇到这个问题:
但是,这不是正确的解决方案。所以我尝试在我的 .NET 应用程序上执行以下操作:
- 将框架从 4.5.2 更新到 4.7.2
- Bruteforce 添加到 header(目前)
- 添加了这个但还不知道预先存在的选项应该是什么:
- 在网络配置中添加了以下内容:
- 不确定为什么不允许使用此属性:
我在本地主机上测试应用程序时收到这些警告:
请注意,默认情况下禁用 samesite cookie 解决了这个问题,但我必须采取措施,让用户不必更改他们的设置并像以前一样继续。
补充说明:
- 我在 Internet Explorer、FireFox 和 Opera 上没有遇到这个问题
- link 不在 IFrame 上时没有问题
目前 Chrome 仅执行新政策 for subset of users 因此您的同事可能会看到不同的结果。
我假设您已经检查了 Chrome Application => Storage => Cookies
视图并确认您的 cookie 返回并设置了 SameSite=None
和 Secure
?
如果是这样,您可能需要将 iframe 移至 https
(查看您的屏幕截图,它现在似乎是 HTTP),因为 Secure
指示 Chrome 仅发送此饼干 over secure connection。要测试这是否是您的情况,
尝试禁用 chrome://flags/#cookies-without-same-site-must-be-secure