首页 > 解决方案 > 在 Chrome 于 2020 年 2 月针对 SameSite 相关问题进行更新后,即使遵循 .NET 的 Web 配置建议,我的 IFrame 仍然存在问题

问题描述

因此,客户的客户问题在 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 月更新之前,这没问题。

我使用的google chrome的版本是80.0.3987.149 不知
为什么,即使我的其他同事有相同的版本,他们也没有遇到这个问题。已经卸载了我所有的插件并清除了缓存并退出了 chrome,问题仍然存在于我的浏览器中(我是目前唯一能够复制我客户的客户问题的人)

在我的浏览器中设置后,我不再有问题了: SameSite 默认禁用 Cookie

但是,这不是正确的解决方案。所以我尝试在我的 .NET 应用程序上执行以下操作:

在我的本地主机上测试应用程序时,我有这些警告: 在此处输入图像描述

请注意,默认情况下禁用同一个站点的 cookie 解决了这个问题,但我必须采取行动,用户不必更改他们的设置并像以前一样继续。

附加说明:

标签: c#google-chromeiframelocal-storagesamesite

解决方案


目前,Chrome 仅对部分用户实施新政策,因此您的同事可能会看到不同的结果。

我假设您已经检查了 ChromeApplication => Storage => Cookies视图并确认您的 cookie 会返回SameSite=NoneSecure设置? 在此处输入图像描述

如果是这样,您可能需要将 iframe 移动到https(查看您的屏幕截图,它现在似乎是 HTTP),因为它Secure指示 Chrome 仅通过安全连接发送此 cookie 。要测试这是否是您的情况,请尝试禁用chrome://flags/#cookies-without-same-site-must-be-secure


推荐阅读