电脑上的chrome一有新版本,就升级到了新版,一般使用没什么问题,然后iis express调试 .net core应用时就出了问题,cookie无法保存,导致页面间 [TempData]传递失效。
回想之前遇到过此问题,是通过设置在浏览器地址栏里输入:chrome://flags/,搜索same-site,如图所示 将前两项 禁用 即可。
以上为旧版
然而,chrome91版却找不到这两项了:
以上为chrome91,SameSite by default cookies和 Cookies without SameSite must be secure两项找不到了。
老的办法不能用了,Edge试了下也是不行。换旧版,换Firefox不想换,怎么办呢?找了下Cookie samesite的问题原因,就想在应用本身设置上解决。
解决办法:
修改配置,打开IIS express的SSL端口,用https访问问题就解决了
iis express配置在launchsettings.json文件中,位置如下图:
launchsettings.json,修改其中的端口号,从0改为一个非0数字,注意不能被其他应用占用。这样就解决了cookie 本地不能保存问题。
"iisSettings": { "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { "applicationUrl": "http://localhost:4536/", "sslPort": 44335 //0->44335,修改此项可以解决cookie在Chrome91无法保存的问题 } },