- A+
所属分类:.NET技术
自己的一个使用了IdentityServer4 的单点登录demo项目,突然就登录不好使了,一直在登录页,调试了一下返现登录流程也走了,也登录成功了,就是跳转的时候又回到了登录页,百思不得其解。知道后来在控制台看到了这个;
点开发现了这个;
英文不好翻一下;
现在知道这是一个cookie跨域的问题,我又去验证了一下,在谷歌浏览器下登录一直还在登录页,我换成edge浏览器,登录之后就会自动跳转,没问题;感觉问题应该是谷歌浏览器更新了,更新了啥协议啥的;
要怎么解决呢?我也还不知道呀,于是就打开了百度, 搜索 .net core SameSite ;
在微软的官方文档里 https://docs.microsoft.com/zh-cn/aspnet/core/security/samesite?view=aspnetcore-3.1 就有对应的描述,大家可以看下;
这里我就说一下我是怎么解决这个问题的;
//ConfigureServices 添加 services.Configure<CookiePolicyOptions>(options => { options.MinimumSameSitePolicy = SameSiteMode.Lax; });
//Configure 添加 app.UseRouting(); app.UseCookiePolicy(); app.UseIdentityServer();
SameSiteMode.Lax 意思是 cookie 可以是相同站点请求和跨站点。
启动项目,用谷歌浏览器再次登录,已经可以正常跳转了;