【问题标题】:How do I exclude SameSite attribute in .NET 4.5.2 web app如何在 .NET 4.5.2 Web 应用程序中排除 SameSite 属性
【发布时间】:2020-05-07 23:23:28
【问题描述】:

我有一个 .NET 4.5.2 Web 应用程序,我需要在跨站点上下文中传递一个身份验证 cookie。我正在设置 SameSite=None,将其附加到路径

FormsAuthentication.SetAuthCookie(myUser, false, $"{FormsAuthentication.FormsCookiePath}; SameSite=None; Secure");,

某些浏览器与 SameSite=None (https://www.chromium.org/updates/same-site/incompatible-clients) 不兼容,因此我必须将其排除以支持这些浏览器:

FormsAuthentication.SetAuthCookie(myUser, false, FormsAuthentication.FormsCookiePath);

在这两种情况下,.NET 都将 SameSite="Lax" 添加到 cookie,因此在第一种情况下,Set-Cookie 标头如下所示:

AC7.AUTH=ABC; path=/; SameSite=None; secure; HttpOnly; SameSite=Lax

在第二种情况下:

AC7.AUTH=ABC; path=/; HttpOnly; SameSite=Lax

这似乎是在我们安装 Microsoft 的 KB4530689 安全更新时引入的。我们卸载了该更新,它恢复为不将“SameSite=Lax”附加到所有 cookie。我不确定如何长期缓解此问题,如果 Microsoft 打算在旧版本的 .NET 中使用此行为,或者是否有其他我没有看到的解决方案。任何帮助表示赞赏。

【问题讨论】:

    标签: cookies .net-4.5 samesite


    【解决方案1】:

    我也一直在和这个战斗。 见https://docs.microsoft.com/en-us/aspnet/samesite/system-web-samesite 我们使用 iframe,因此可能的解决方案是使用 web.config 更改... <forms cookieSameSite="None" />

    【讨论】:

      猜你喜欢
      • 2020-10-15
      • 2020-12-26
      • 2020-04-24
      • 2022-01-26
      • 1970-01-01
      • 2017-11-10
      • 2020-06-15
      • 1970-01-01
      • 2020-11-23
      相关资源
      最近更新 更多