首页 > Web开发 > 详细

.net core 2.1 session为null的问题

时间:2019-03-28 14:57:20      阅读:677      评论:0      收藏:0      [点我收藏+]

 

遇到的问题:session可以存储,但读取时始终未null

最近项目从.net core2.0升级为2.1时,session是存储到redis里的,登录验证码是存储到session的,监控发现已经存储到redis了,但读取确始终未null

相关代码:

技术分享图片

技术分享图片

session的扩展方法如下:

技术分享图片

引入如下:

 技术分享图片

调试如下:

技术分享图片

   再点击登录按钮时发现session未null

技术分享图片

 

发现2.1比2.0 Startup ConfigureServices默认多了这么一段代码

技术分享图片

从字面了解应该是需要必经过用户cookie协议同意,个人理解为首先session在写入时会返回给用户sessionid,这个id一般是存储在用户cookice或者url里在取session值的时候使用id查询的,但是上面这个一旦开启,代表着用户必须同意你才可以使用cookice技术,导致你的sessionid无法回传,后端就会认为这是一个新的会话,所以产生了新的sessionid,就取不到值了。

我的解决办法是options.CheckConsentNeeded = context => false;注释掉就可以了。

 另外发现以下代码也有影响,应当去掉

app.UseForwardedHeaders(new ForwardedHeadersOptions
{
 ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
});

.net core 2.1 session为null的问题

原文:https://www.cnblogs.com/lixiaojun1009/p/10609009.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!