【问题解决】SameSiteMode.None取不到session问题

12 篇文章 0 订阅
2 篇文章 0 订阅

SameSiteMode.None取不到session问题

问题描述

在.net core 2.1 环境下,设置SameSiteMode.None,同时设置options.CheckConsentNeeded = context => false;依旧session为空。浏览器为chorme。

问题原因

根据微软描述,ASP.NET Core 2.1 内置了对SameSite属性的支持,但它已写入原始标准。 修补后的行为更改了的含义 SameSite.None ,以发出值为的 sameSite 特性 None。

SameSite

SameSite 是 Chrome 51 版本为浏览器的 Cookie 新增的了一个属性, SameSite 阻止浏览器将此 Cookie 与跨站点请求一起发送。其主要目标是降低跨源信息泄漏的风险。同时也在一定程度上阻止了 CSRF(Cross-site request forgery 跨站请求伪造)。

Cookie 的SameSite属性用来限制第三方 Cookie,从而减少安全风险。(文本引用参见

直白说就是一种安全策略。我们本地开发环境是http的,所以导致了Session传不过来。所以设置再多项目也无效。

解决方式

因为我这里的问题不是代码层面(同事的可以取到),只能在浏览器上解决。修改chrome配置项。

  1. 地址栏:chrome://flags
  2. 搜索:SameSite by default cookies
  3. 选择:disabled
  4. 重启浏览器
    (ps:这是因为本地是http不是https导致的)
    如果是代码层面
services.Configure<CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded = context => false;//是否经过用户同意
                options.MinimumSameSitePolicy = SameSiteMode.None;                
            });
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值