kru*_*iar 3 c# google-chrome httpcookie samesite
由于 Chrome 将于SameSite=None2 月 4 日从 80 版本开始强制使用安全标志,因此我尝试使用以下代码行在我的 cookie 中设置此标志:
HttpCookie myCookie = new HttpCookie("XYZ");
myCookie.Value = newCookie;
myCookie.SameSite = SameSiteMode.None;
myCookie.Secure = true;
myCookie.Expires = DateTime.Now.AddYears(2);
context.Response.Cookies.Add(myCookie);
Run Code Online (Sandbox Code Playgroud)
但这些属性不起作用。即使将 .Net Framework 版本升级到 4.8 后,该标志也没有设置SameSite=None为 cookie 所需的值。另外,我面临的一个奇怪的问题是,当我在 web.config 中使用以下行时,在从服务器请求它时,该标志会在我的 cookie 中正确设置:
<sessionState cookieSameSite="None" />
<httpCookies sameSite="None" requireSSL="true" />
Run Code Online (Sandbox Code Playgroud)
但是,当我在负载平衡中执行相同的配置并在另一台服务器上发布时,它不起作用。
有谁知道如何在 C# 中直接设置这个东西吗?
感谢您提前的帮助
您必须安装 2019 年 12 月 10 日(或更高版本)的 .NET Framework 累积更新。搜索 Microsoft 支持站点以查找适合您的 Windows 版本和 .NET Framework 的更新。
如果没有更新,ASP.NET 将永远不会向响应 cookie 添加 SameSite=None 属性。
通过更新,如果您将 HttpCookie.SameSite 显式设置为SameSiteMode.None 或者在 Web.config 中设置该<httpCookies sameSite="None">属性,则 ASP.NET 将向响应 cookie 添加 SameSite=None 属性。此更新还将 ASP.NET 表单身份验证和会话 cookie 的默认 SameSite 模式更改为 Lax。要将它们更改回 None,请在 Web.config 中设置<forms cookieSameSite="None">和<sessionState cookieSameSite="None">属性。
| 归档时间: |
|
| 查看次数: |
8181 次 |
| 最近记录: |