因此,由于我将手机升级到了ios12,因此无法登录到我正在开发的网站(.net核心2);我通过Facebook登录,并且当Facebook重定向到我的端点时,cookie不在请求中,因此当此行运行时:
ExternalLoginInfo info = await _signInManager.GetExternalLoginInfoAsync();
它始终为null,我检查了请求,没有cookie,而在其他设备/个人计算机上,登录正常,它的唯一ios12就是给我这个问题atm
我看到另一条帖子说将cookie设置为SameSite = None
services.ConfigureApplicationCookie(options =>
{
options.Cookie.Path = "/";
options.Cookie.SameSite = SameSiteMode.None;
options.ExpireTimeSpan = TimeSpan.FromMinutes(30);
options.SlidingExpiration = true;
options.AccessDeniedPath = "/Welcome";
});
但是这不起作用,还有什么我可以尝试的吗?
答案 0 :(得分:1)
所以我修复了它,这是一个类似的解决方案,但是如果您使用外部登录,则必须将外部cookie配置为SameSite = SameSiteMode.None
services.ConfigureExternalCookie(options =>
{
options.Cookie.SameSite = SameSiteMode.None;
});
答案 1 :(得分:0)
扩大Rob的答案...
在我的OpenIdConnect身份验证块中添加以下内容可解决此问题:
.Services.ConfigureExternalCookie(options => {
options.Cookie = new Microsoft.AspNetCore.Http.CookieBuilder
{
SameSite = Microsoft.AspNetCore.Http.SameSiteMode.None
};
});
该修补程序似乎已添加到2.3-External authentication failing on iOS 12 #2595