今天在弄 identityServer4 项目的时候,发现好好的登录竟然没用了。

各种跟踪后发现是 HttpContext.SignInAsync 这个方法不写cookies了

原本经过这个方法后,会写入 idsrv和idsrv.session 两个cookies的。

搜索资料后发现简书上有人和我一样的问题

链接如下 https://www.jianshu.com/p/30089845b172

然后我也跟着一样清理了浏览器缓存等数据,也好了。所以这是为什么?

先记录一下解决问题,回头看下.net core 源码看看它是怎么工作的。

我记得出现这个问题的原因是:

我将id4中的  app.UseHttpsRedirection(); 这行代码给注释掉了,首先我没注释前,用它登录过,成功能写cookies

后来我因为开发环境懒得搞证书什么的,就先注释了这句,结果再去登录就写不上cookies了。

先记录问题。我的.net core 版本是 3.1,如果有人知道麻烦评论区告知一下。谢谢

===============================

20201030

因为某些原因,这个项目很久没搞,然后过了2 个月后,跑回来继续弄这个项目,又发现问题,又是控制台报

Showing login: User is not authenticated

我以为又是和上次一样的问题,又想着先清理缓存试试,结果发现怎么清理缓存都没用。

然后又开始搜资料,发现了一个人提问和我很像,链接如下,英文的:https://www.e-learn.cn/topic/3672478

我英文也是弱鸡,大概意思是说:

如果用http协议+chrome浏览器(我用的edge最新版,edge也是chromeium核心的吧),如果是http协议+chrome浏览器,会拒绝 SameSite=none 的cookie。

所以,造成了id4无法写入cookie,然后导致一直报这个错误(id4写的cookieSameSite属性=none)

怎么解决,一般推荐用https(我是直接在vs里面启用https来测试的,一起用https就可以登陆了,然后马上了更新了一下这篇文章,我记性差,怕下次遇到又忘记)

也可以修改cookie策略

app.UseCookiePolicy(new CookiePolicyOptions { MinimumSameSitePolicy = SameSiteMode.Lax }); 加入这句代码修改cookie策略(我不知道这么做是否会影响id4功能,我随意测试了一下没有影响,没仔细测。)

推荐还是启用https吧,开发时候我就修改这个策略,上线我还是用https来吧。

记录一下过程,提醒自己。

说起来你们可能不信,我都忘记我写了这篇文章,刚刚登录不上去我又是搜索 HttpContext.SignInAsync 失效,然后找到自己的文章的。。。。。

=====20201031

今天访问天猫的站点,发现这个公告,他们教用户设置浏览器。

HttpContext.SignInAsync 失效(表面解决了问题,未深入到.net core 源码去找问题,记录一下,等有时间翻一下.net core 源码试试能不能找到根本原因)的更多相关文章

  1. [转]iOS Safari 中click点击事件失效的解决办法

    iOS Safari 中click点击事件失效的解决办法 问题起因: 在微信公众号开发(微站)过程中用jquery的live方法绑定的click事件点击无效(不能执行) 问题描述 当使用委托给一个元素 ...

  2. margin-top失效的解决方法

    异常处理汇总-前端系列 http://www.cnblogs.com/dunitian/p/4523015.html 我的是属于这种情况 按照网上的说法,我就是这个现象了 两个层box1和box2,b ...

  3. iOS Safari 中click点击事件失效的解决办法

    问题起因: 在微信公众号开发(微站)过程中用jquery的live方法绑定的click事件点击无效(不能执行) 问题描述 当使用委托给一个元素添加click事件时,如果事件是委托到 document  ...

  4. zsh下 home end 键失效的解决办法

    我的环境是 centos 6.5 x64 安装 oh my zsh 后,home end 键失效,解决办法为在 .zshrc 里添加设置如下 #Rebind HOME and END to do th ...

  5. 解决redhat的未注册问题

    昨天安装第五步的时候:开始是没有网,,,居然ping不通  网  ,服务器也ping不通,,,,,可能和我前几天删除了网络适配器有关,,把linux桥接对应的适配器给删了,,, 解决办法是打开虚拟网络 ...

  6. Easyui中使用jquery或js动态添加元素时出现的样式失效的解决方法

    Easyui中使用jquery或js动态添加元素时出现的样式失效的解决方法 2014-03-27 11:44:46|  分类: Easy UI|举报|字号 订阅     可以使用$.parser.pa ...

  7. IE7的overflow失效的解决方法

    IE7的position:relative bug今天遇到了一个相对定位(position:relaitve)引起的IE7中overflow:hidden失效的bug,特此记录!解决方法很简单,给父层 ...

  8. ode.js 版本控制 nvm 和 n 使用 及 nvm 重启终端失效的解决方法

    今天的话题包括2个部分 node.js 下使用 nvm 或者 n 来进行版本控制 nvm 安装node.js 版本后,重启终端 node , npm 环境变量失效 第一部分 用什么来管理 node.j ...

  9. IE6/IE7下margin-bottom失效兼容解决办法及双倍边距问题

    (从已经死了一次又一次终于挂掉的百度空间人工抢救出来的,发表日期 2014-04-08) 一.IE6/IE7下margin-bottom失效兼容解决办法 1.用padding-bottom代替:2.在 ...

  10. 浏览器禁用Cookie,基于Cookie的会话跟踪机制失效的解决的方法

    当浏览器禁用Cookies时.基于Cookie的会话跟踪机制就会失效.解决的方法是利用URL重写机制跟踪用户会话. 在使用URL重写机制的时候须要注意.为了保证会话跟踪的正确性,全部的链接和重定向语句 ...

随机推荐

  1. SpringBoot集成MQTT

    MQTT介绍 MQTT 是基于 Publish/Subscribe(发布/订阅) 模式的物联网通信协议,凭借简单易实现.支持 QoS.报文小等特点. 其具有协议简洁.⼩巧.可扩展性强.省流量.省电等优 ...

  2. 洛谷P6397

    [COI2008] GLASNICI 题意描述 输入 3.000 2 0.000 6.000 输出 1.500 点拨 二分答案的题一般来说可以用答案去检验假设. 对于这道题,每一个信使的最佳走法是保证 ...

  3. javaweb上传图片存到本地,并存储地址到数据库

    前端使用layui的图片上传,将文件base64编码,然后在后端使用转码类来操作base64编码,并保存图片到本地,继而获取文件地址,将文件地址保存到数据库中 1.使用layui的图片上传 infos ...

  4. FFmpeg开发笔记(三十八)APP如何访问SRS推流的RTMP直播地址

    ​<FFmpeg开发实战:从零基础到短视频上线>一书在第10章介绍了轻量级流媒体服务器MediaMTX,通过该工具可以测试RTSP/RTMP等流媒体协议的推拉流.不过MediaMTX的功能 ...

  5. django 设置外键的时候,related_name的值大写还是小写,规则怎样

    django 设置外键的时候,related_name的值大写还是小写,规则怎样 在Django中,related_name参数用于定义反向关系的名称,即通过外键字段反向查询关联模型的对象.relat ...

  6. oeasy 教您玩转 linux 010215 随机谚语 fortune

    我们来回顾一下 上一部分我们都讲了什么? 把图像转化为了ascii️字符画 并且修改了cowsay的图像素材的位置 我们想要让牛讲一个随机的笑话 首先我们要有个说笑话的软件包 # 下载fortune ...

  7. C++如何在main函数开始之前(或结束之后)执行一段逻辑?

    1. 问题 2. 考察的要点 3. 解决策略 3.1. 方案一:使用GCC的拓展功能 3.2. 方案二:使用全局变量 3.3. 方案三:atexit 4. Demo测试 4.1. 测试代码 4.2. ...

  8. Git的分支管理和标签操作

    分支操作 分支是Git使用过程中非常重要的概念.使用分支意味着你可以把你的工作从开发主线上分离出来,以免影响开发主线. 同意一个仓库可以有多个分支,各个分支相互独立,互不干扰.通过git init 命 ...

  9. TinyVue v3.17.0 正式发布,推出了一款基于 Quill 2.0 的富文本编辑器,功能强大、开箱即用!

    你好,我是 Kagol. 我们非常高兴地宣布,2024年6月26日,TinyVue 发布了 v3.17.0 . TinyVue 每次大版本发布,都会给大家带来一些实用的新特性,上一个版本我们重构了 c ...

  10. linux测试cpu性能的命令

    linux测试cpu性能的命令 在Linux中,可以使用多种命令来测试CPU性能.以下是一些常用的命令: stress: 一个通用的压力测试工具,可以生成CPU.内存.IO等负载. 安装: sudo ...