Asp.net core Samesite cookie标志和ASP 2.1
我正在尝试升级我的ASP.NETCore2.1项目,使其符合中描述的新samesite cookie行为 我拥有的2.1版本具有旧的行为。我想将它升级到2.1的新版本,其中 下面的代码实际上会将“samesite=none”放在set cookie头的连线上,而不是完全省略samesite文本(这是旧的行为) 我相信我想要的版本是v2.1.14 at, 但是当我进入nuget包管理器时,我没有看到v2.1.14的选项。我看下面。我选择2.1.6是因为我猜2.1.14中的SDK版本是2.1.607。虽然我不确定这是不是正确的决定 但是仅仅添加lib似乎对samesite行为没有任何影响。它仍然被遗漏了。我很确定我上面提到的代码中的位置就是正确的区域。安全策略行运行良好。如果我将其移除/放回,我会看到集合cookie中的“安全”文本在fiddler跟踪中来来去去去。只是SameSite属性似乎没有效果 我已经将我抓取的aspnetcore版本升级到了2.1.7甚至2.2(虽然我还不想走那么远),但仍然得到了相同的行为。它就像是被旧版本的asp.net内核卡住了一样 我的项目包如下图所示。在此屏幕截图中,我只升级了Microsoft.AspNetCore。虽然在过去,我已经升级了一些其他的没有效果。我也瞄准了.NET4.8 这是我的请求/答复。请注意,如果我更改chrome设置以尊重旧的samesite行为,则不会得到400错误的响应。我找到了一个302的resposne。我希望在SetCookie中我的应用程序的响应中看到samesite=noneAsp.net core Samesite cookie标志和ASP 2.1,asp.net-core,cookies,setcookie,samesite,Asp.net Core,Cookies,Setcookie,Samesite,我正在尝试升级我的ASP.NETCore2.1项目,使其符合中描述的新samesite cookie行为 我拥有的2.1版本具有旧的行为。我想将它升级到2.1的新版本,其中 下面的代码实际上会将“samesite=none”放在set cookie头的连线上,而不是完全省略samesite文本(这是旧的行为) 我相信我想要的版本是v2.1.14 at, 但是当我进入nuget包管理器时,我没有看到v2.1.14的选项。我看下面。我选择2.1.6是因为我猜2.1.14中的SDK版本是2.1.607
GET /worksite/authorized?code=e2fqpnolfjtOdEFOWWdDBkDYMKy8wr HTTP/1.1
Host: localhost:44396
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: cross-site
Sec-Fetch-Mode: navigate
Sec-Fetch-Dest: iframe
Referer: https://localhost:44396/
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
-----
HTTP/1.1 400 Bad Request
Cache-Control: no-cache
Pragma: no-cache
Expires: -1
Server: Kestrel
Set-Cookie: .AspNetCore.Session=VALIDSESSIONID%; path=/; secure; httponly
Persistent-Auth: true
X-Powered-By: ASP.NET
Date: Wed, 20 Jan 2021 14:19:27 GMT
Content-Length: 0
所以我的问题是
为了在线路上获得samesite=none,我必须将所有的aspnetcore2.1包升级到其2.2等效版本 什么与什么一起工作的版本号是不可能弄清楚的。我本想把事情保持在2.1,但为了确保我有匹配的LIB,我不得不去2.2
然后我不得不添加一个全新的包,因为一些该死的原因。Microsoft.Net.Http.Headers版本2.2.8。由于您似乎在ASP.Net Core 2.1应用程序中以.Net Framework为目标,因此缺少一个小而重要的部分:您需要将2个NuGet软件包更新到这些版本或更高版本():
“你可以在20小时内接受你自己的答案”-因为在Stack Overflow我们都在浪费你该死的时间。我没有Cookie政策。但是头球也是绝对需要的。
GET /worksite/authorized?code=e2fqpnolfjtOdEFOWWdDBkDYMKy8wr HTTP/1.1
Host: localhost:44396
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: cross-site
Sec-Fetch-Mode: navigate
Sec-Fetch-Dest: iframe
Referer: https://localhost:44396/
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
-----
HTTP/1.1 400 Bad Request
Cache-Control: no-cache
Pragma: no-cache
Expires: -1
Server: Kestrel
Set-Cookie: .AspNetCore.Session=VALIDSESSIONID%; path=/; secure; httponly
Persistent-Auth: true
X-Powered-By: ASP.NET
Date: Wed, 20 Jan 2021 14:19:27 GMT
Content-Length: 0
<PackageReference Include="Microsoft.Net.Http.Headers" Version="2.1.14" />
<PackageReference Include="Microsoft.AspNetCore.CookiePolicy" Version="2.1.14" />