首页 > 解决方案 > 无法使用 Owin 在 Google Chrome(最新版本)浏览器 MVC5 中通过第三方登录提供商 (Google) 登录

问题描述

google chrome 最新版本 85中,我无法使用第三方提供商(如(Google))的登录服务,但可以在 Firefox 和其他浏览器上完美运行。
测试用例
在使用 Google Outh2.0 授予权限后,它会重定向到 singin-google,并包含所有详细信息,例如状态范围等。但是后来它尝试了.AspNet.ExternalCookies一些东西,但是在 Google chrome 中它没有被创建,并且它无法登录并使用 Error= Access_Denied
生成回调 但是另一方面,对于不同的浏览器,如 Mozilla,相同的代码可以工作并且用户能够登录。
进一步我寻找发布chrome 的注释,是的,他们贬低了与 cookie 相关的功能,但无法在应用程序中处理。
如果有人面临同样的问题或有任何想法如何处理这个请回复。

我正在使用最新版本的 Owin,包括 Microsoft.Owin.Security 和 Google

标签: google-chromeasp.net-mvc-5owingoogle-signinthird-party-cookies

解决方案


默认情况下,谷歌浏览器使用 Lax 选项实现同站点 cookie。但其他浏览器尚未实现。
我在微软网站上得到了解决方案,我们为 chrome 浏览器明确设置了 cookies samesite=none 并为其他浏览器传递了空。

对于带有 Microsoft.Owin 4.1.0 代理嗅探的 ASP.NET 4.7.2,可以使用 ICookieManager 实现
完整代码,您可以在此处找到


推荐阅读