.net core session部分浏览器或移动客户端不可用

.net core session使用有很多文章,这里不再赘述。

问题现象为大部分浏览器或者移动客户端(例如微信、支付宝、钉钉)等都可以正常使用。但部分支付宝用户及钉钉用户确无法使用。

写入后读取不到值。查阅了大量资料,都说配置

services.AddSession(options =>
{
options.Cookie.IsEssential = true;
});

就可以解决,实测无效。

还专门对比了支付宝的版本,发现两人使用的是相同的版本,一人好使,一人不好使。(安卓版本不同)

问题困扰了很久,最后发现应该是配置

options.Cookie.SameSite = SameSiteMode.None;

完整session的配置代码如下:

ConfigureServices方法中配置

            services.AddDistributedMemoryCache();

            services.AddSession(options =>
            {// Make the session cookie essential
                options.Cookie.IsEssential = true;
                options.Cookie.SameSite = SameSiteMode.None;
            });

Config方法中:

app.UseSession();

都在MVC前面,教程中都有。

原文地址:https://www.cnblogs.com/draweye/p/11463078.html