netcore 版本升级 导致的cookie验证失败

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

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

只是想看看问题出在哪?

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

1         "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,先记录这些
 

原文地址:https://www.cnblogs.com/wanglg/p/11969149.html

时间: 2024-08-08 13:13:52

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

ASP.NET Core 使用Cookie验证身份

ASP.NET Core 1.x提供了通过Cookie 中间件将用户主体序列化为一个加密的Cookie,然后在后续请求中验证Cookie并重新创建主体,并将其分配给HttpContext.User属性.如果您要提供自己的登录界面和用户数据库,可以使用作为独立功能的Cookie中间件. ASP.NET Core 2.x的一个主要变化是不再存在Cookie中间件.取而代之的是在Startup.cs文件中的Configure方法中的调用UseAuthentication方法会添加设置HttpConte

token 验证失败 可能的问题分析

真的得好好看文档,但是由于工作的需要,我们都在赶进度,其实慢下来,仔细看文档,会给你省不少时间. 进入正题. 请看微信接入指南 划横线的这一部分其实很重要,值得仔细推敲. 上面说了,原样返回echostr参数内容,可是如果你在返回echostr之前有任何输出,都将导致token验证失败,无法接入微信. 比如一些php的warning,notice之类的警告,还有一些空格之类的空白字符,都可能导致无法成功接入微信.

PushSharp 由于远程方已关闭传输流,身份验证失败。

前段时间用到了PushSharp给APNS发推送,但是用的时候遇见很诡异的事情,每次第一次运行的时候能成功发送到 但是接下来就无限的提示“由于远程方已关闭传输流,身份验证失败. “ 然后我就各种找原因,找来找去,各种方式都试过了,但是还是不行...而且同事用php写的一个客服端却非常的流畅,简直疯了要 后来终于...找见原因了! 原来是我工作用的系统太老了...我用的还是xp系统,好像xp系统中对身份验证有个漏洞,结果导致程序无限报错,我把程序放到server2008上后就一切正常了... 简直

oracle导入时IMP-00010: 不是有效的导出文件, 头部验证失败

问题描述: 将oracle 11g导出的dmp文件导入到oracle10g 问题:进行导入表操作,提示: IMP-00010: 不是有效的导出文件, 头部验证失败 IMP-00000: 未成功终止导入 解决方案: 查询dmp备份文件中的oracle 版本号,主版本号必须一样,否则不会成功. 可以考虑用编辑软件例如notepad++/UE/editplush打开dmp文件并修改 要弄清楚dmp的备份方式是exp/expdp/工具导出,要使用相对的方式导入imp/impdp/工具导入 最重要的一条要

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

web是基于HTTP协议传输的,明文传输是极其危险的,随便哪个抓包工具分析下数据包,就over啦,一个加密的传输过程应该包括两部分,一部分为身份认证,用户鉴别这个用户的真伪:另外一部分为数据加密,用于数据的保密. 设计方案1:1.生成用户验证token,用户登录后我会生成一个token,该token可能由如下信息组成:username+ip+expiration+salt[只是举例],然后将组成信息用可逆加密函数加密得到token,将该token保存到数据库或者redis等,并写入cookie:

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

1.错误出现在更换服务器操作系统后,使用ssh指令连接服务器时报错:ECDSA主机密钥发生改变,导致主机密钥验证失败! 2.解决方式,使用指令:$ ssh-keygen -R  主机IP 如:$ ssh-keygen -R  123.206.74.24 原文地址:https://www.cnblogs.com/qikeyishu/p/10588566.html

mvc 对一个或者多个实体验证失败

为了解决“对一个或者多个实体验证失败”,关闭调用SaveChanges() 的实体属性合法性验证(谨慎使用) db.Configuration.ValidateOnSaveEnabled = false; db.SaveChanges();

[原创] ASP.NET WEBAPI 接入微信公众平台 总结,Token验证失败解决办法

首先,请允许我说一句:shit! 因为这个问题不难,但是网上有关 ASP.NET WEBAPI的资料太少.都是PHP等等的. 我也是在看了某位大神的博客后有启发,一点点研究出来的. 来看正题! 1.微信公众平台的接入方法,无非4个参数(signature, timestamp, nonce, echostr)加1个Token(两边对应) 2.Token, timestamp, nonce字典排序后,按照字符串“SHA1”加密.得出一串字符串 tmpStr(转化为小写) 3.然后比对 tmpStr

tornado 学习之 cookie 验证机制详解

本文和大家分享的主要是tornado中cookie 验证机制相关内容,一起来看看吧,希望对大家 学习tornado有所帮助. 处理过程简单来说就是验证密码之后服务器端(tornado) 返回带有  cookie  信息的  Set-Cookie header 给客户端 ,  之后客户端发起请求时会把此  cookie  放入  Cookie header  中发给服务器端. tornado 设置 cookie 首先是对 cookie  的变量进行设置 , Morsel  是含有几个特殊  key