zoukankan      html  css  js  c++  java
  • .net core 2.1 session为null的问题,session丢失

    遇到的问题: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
    });

  • 相关阅读:
    CSS
    WebStorm快捷键
    每日一题
    周末了周末了
    集合,个人理解
    Linux学习笔记
    Java对象的序列化和反序列化实践
    Android 实现蘑菇街购物车动画效果
    【转】android手势处理揭秘
    【转】android 手势识别和VelocityTracker
  • 原文地址:https://www.cnblogs.com/lixiaojun1009/p/10609009.html
Copyright © 2011-2022 走看看