排查了两天的问题,本来都是运行正常的cookie验证,突然不好用了,服务器获取不到cookie信息。

我确实是升级了.netcore sdk,之前是2.2.102,后来升级成了2.2.107,一开始并没有意识到直接卸载新版本进行调试,

只是想看看问题出在哪?

首先是打印出来服务器段写入的cookie信息:

         "Set-Cookie": "[.AspNetCore.loginvalidate=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/, .AspNetCore.loginvalidate=xxxxxxx; expires=Tue, 03 Dec 2019 13:58:33 GMT; path=/; samesite=none]",

没看出什么问题,然后我在HttpContext.SignInAsync 方法下面又自己伪造了一个cookie信息写入,

HttpContext.Response.Cookies.Append(".AspNetCore.loginvalidate", "xxxxx"),注意xxx是真实的登录信息,我拷贝过来的,这次竟然登录成功了,问题

就应该出在后面的参数里

expires=Tue, 03 Dec 2019 13:58:33 GMT; path=/; samesite=none
最后经过调试发现有samesite=none 就会出问题,但是cookie信息也不能靠手动去编辑,最后我把新版本的sdk删掉,然后重启,再回写的cookie信息就没有
samesite=none,两个sdk版本对cookie的处理有了差异。

问题又来了,加上
samesite=none 其实并不应该有问题,本身已经说明了不进行samesite的限制,问题还是出现在终端调用的代码上,因为用PC端进行登录就一直没有问题,
而我的手机端使用的是uniapp的 uni.request进行api调用,android的手机cookie信息存在
samesite=none就无法通过cookie验证,而ios又不存在这个问题,是不是uniapp的一个坑,回头我得去提一下issue,先记录这些
 

netcore 版本升级 导致的cookie验证失败的更多相关文章

  1. ASP.NET Core 使用Cookie验证身份

    ASP.NET Core 1.x提供了通过Cookie 中间件将用户主体序列化为一个加密的Cookie,然后在后续请求中验证Cookie并重新创建主体,并将其分配给HttpContext.User属性 ...

  2. Asp.NetCore Web开发之模型验证

    在开发中,验证表单数据是很重要的一环,如果对用户输入的数据不加限制,那么当错误的数据提交到后台后,轻则破坏数据的有效性,重则会导致服务器瘫痪,这是很致命的. 所以进行数据有效性验证是必要的,我们一般通 ...

  3. django 1.10 CSRF验证失败的解决过程

    最近工作闲,没事自学django,感觉这个最烦的就是各版本提供的api函数经常有变化,不是取消了就是参数没有了,网上搜到的帖子也没说明用的是什么版本的django,所以经常出现搬运过来的代码解决不了问 ...

  4. 支付宝即时到账API,网站收到回调页面,输出验证失败,log中responseTxt=错误的问题

    看了网上无外乎这三种原因导致: 1.参数编码问题 2.参数多余问题 3.网络延时问题 以上三种可以参考这个网站给出的解决办法:http://blog.csdn.net/zj53hao/article/ ...

  5. 关于 submit 按钮的 onclick 验证事件,第一次验证失败,第二次 submit 按钮失效的原因解析

    今天在做一个生成订单的简单验证页面 主要功能:实现点击提交按钮后,先在页面上用JavaScript验证信息是否输入完全,不完全不允许提交,待输入完全后,才可以提交 页面:如下页面,可以看到,当文本框有 ...

  6. "最大工作进程数"导致的WCF调用失败

    WCF服务寄宿在IIS中,当设置其“最大工作进程数”>1时,经常会出现服务无法被成功调用 客户端异常为System.ServiceModel.Security.MessageSecurityEx ...

  7. WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! --主机密钥验证失败

    1.错误出现在更换服务器操作系统后,使用ssh指令连接服务器时报错:ECDSA主机密钥发生改变,导致主机密钥验证失败! 2.解决方式一 使用指令:$ ssh-keygen -R  主机IP 如:$ s ...

  8. 比较安全的cookie验证登录设计方案

    web是基于HTTP协议传输的,明文传输是极其危险的,随便哪个抓包工具分析下数据包,就over啦,一个加密的传输过程应该包括两部分,一部分为身份认证,用户鉴别这个用户的真伪:另外一部分为数据加密,用于 ...

  9. 微信token验证失败的几种情况

    最近在研究用PHP做微信开发的时候,“修改配置时”,总是遇到token验证失败的提示.历经一番查找,种种输出日志和echo,发现,如果不echo调试信息,也不写日志,就不需要ob_clean(),如果 ...

随机推荐

  1. USACO 奶牛抗议 Generic Cow Protests

    USACO 奶牛抗议 Generic Cow Protests Description 约翰家的N头奶牛聚集在一起,排成一列,正在进行一项抗议活动.第i头奶牛的理智度 为Ai,Ai可能是负数.约翰希望 ...

  2. 【0521模拟赛】小Z爱划水

    题目描述 小Z和其它机房同学都面临一个艰难的抉择,那就是 要不要划水? 每个人都有自己的一个意见,有的人想做题,有的人想划水. 当然,每个人只能选择一个事情做.如果一个人做的事情和他想做的不同,那么他 ...

  3. GitHub如何删除一个代码仓库

    进入GitHub之后,点击“your repositories”查看所有的代码仓库. 在代码仓库中选择一个需要删除的,进入其详情页 在详情页中找到“setting”设置,下拉至最后可以看到删除选项. ...

  4. python 操作 elasticsearch-7.0.2 遇到的问题

    错误一:TypeError: search() got an unexpected keyword argument 'doc_type',得到不预期外的参数 解决方法:elasticsearch7里 ...

  5. 作业——12 hadoop大作业

    作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3339 Hadoop综合大作业 1.以下是爬虫大作业产生的csv文件 ...

  6. Net core学习系列(五)——Net Core应用程序Startup类介绍

    一.Startup 类 ASP.NET Core应用程序需要一个启动类,按照惯例命名为Startup.在主程序的Web Host生成器(WebHostBuilderExtensions)的 UseSt ...

  7. Mac使用秘钥登录Linux服务器

    简介 在 Mac 上配置 SSH 密钥登录远程的 Linux 相关配置 1.创建本地的 SSH 密钥 本地 生成秘钥对 ssh-keygen -t rsa -C 'youxiang@aliyun.co ...

  8. 进程、线程、IP、端口间关系

    进程.线程.IP.端口间关系 进程是指在系统中正在运行的一个应用程序: 线程是系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元. 对于操作系统而言,其调度单元是线程.一个进程至少包括 ...

  9. golang testing 无法获取覆盖率问题

    https://segmentfault.com/q/1010000021142202

  10. firewall防火墙常用操作

    # firewall防火墙常用操作 - 启动```systemctl start firewalld```- 停止```systemctl stop firewalld```- 重启```system ...