zoukankan      html  css  js  c++  java
  • QQ浏览器兼容模式下Cookie失效 导致的NetCore Cookie认证失效

    最近在写NetCore项目采用的是NetCore的Cookie认证。结果偶然发现QQ浏览器登录不好用。这里先需要了解一下set-cookie中的SameSite属性

     导致原因

     首先Fiddler 4查看一下两次请求

    第一次Post进行登录 返回302重定向到站点首页并带回Cookie (一切正常)

    但是看第二条http请求,返回又是302 ,查看相关信息,请求时Cookie 根本没带入

    到此基本知道整个登录失败是因为Cookie没有带入请求头。

    解决方案:

    • NetCore Cookie认证下如何解决

    经过一系列测试后发现是因为我们响应的Cookie里面有samesite属性 影响了QQ浏览器兼容Cookie带入(也许是个浏览器Bug吧)

    好下面说如何解决此问题在NetCore认证中我们如何取消掉此属性,

    • 自定义Cookie如何解决

    其实不光我们的认证Cookie  其他Cookie也一样 只要我们在NetCore中指定了Cooke的CookieOptions,不设置SameSite的情况下默认为SameSiteMode.Lax 此时在QQ浏览器兼容模式 你的Cookie就不会带入请求

     context.Response.Cookies.Append("test-SameSite", "123456", new CookieOptions()
                    {
                        SameSite=SameSiteMode.None
                    });
  • 相关阅读:
    康托(逆)展开(2015.8.6)
    高精度计算(2015.8.1)
    笔记(2015.8.1)
    筛法求素数(2015.7.30)
    欧几里德算法(2015.7.28)
    快速幂取模(2015.7.29)
    同余
    图论相关算法
    笔记(2015-07-24)
    ACM进阶计划
  • 原文地址:https://www.cnblogs.com/hts92/p/10192494.html
Copyright © 2011-2022 走看看