Поэтому, поскольку я обновил свой телефон до ios12, я не могу войти на сайт, который разрабатываю (.net core 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
Rene M. 25 Сен 2018 в 02:32

2 ответа

Лучший ответ

Поэтому я исправлю это, это аналогичное решение, но если вы используете внешний вход, вам нужно настроить внешний файл cookie как SameSite = SameSiteMode.None

services.ConfigureExternalCookie(options =>
        {
            options.Cookie.SameSite = SameSiteMode.None;
        });
1
Rene M. 25 Сен 2018 в 18:44

Расширяя ответ Роба ...

Добавление следующего в мой блок аутентификации OpenIdConnect решило проблему:

.Services.ConfigureExternalCookie(options => {
    options.Cookie = new Microsoft.AspNetCore.Http.CookieBuilder
    {
        SameSite = Microsoft.AspNetCore.Http.SameSiteMode.None
    };
});

Похоже, исправление будет добавлено в 2.3 - сбой внешней аутентификации на iOS 12 # 2595

0
Johtull 26 Сен 2018 в 15:47