Как исправить исключение «Ошибка корреляции» при использовании Microsoft.Identity.Web?C#

Место общения программистов C#
Ответить
Anonymous
 Как исправить исключение «Ошибка корреляции» при использовании Microsoft.Identity.Web?

Сообщение Anonymous »

Пытаюсь использовать решение Microsoft.Identity.Web для подключения к внешнему поставщику в приложении Asp.net Core.
Я подключил его, используя следующий код C#:

Код: Выделить всё

services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme).AddMicrosoftIdentityWebApp(Configuration.GetSection("AzureAd"));
Он интегрируется нормально, как внешний поставщик.
Однако, когда я вхожу в систему, используя текущего поставщика, я получаю исключение
System.Exception: «При обработке удаленного входа произошла ошибка».
InnerException.
Исключение: не удалось выполнить корреляцию.

В ходе исследования я обнаружил, что это проблема «корреляционного файла cookie» (означает, что поставщик не находит файлы cookie, с которыми можно «коррелировать»). Как я проверил,

Request.Cookie.Count == 0

но браузер отправляет .AspNetCore Файлы cookie .Correlation и .AspNetCore.OpenIdConnect.Nonce со значением «N».
Настройка конфигурации файлов cookie приложения:

Код: Выделить всё

        services.ConfigureApplicationCookie(config =>
{
config.Cookie.SameSite = SameSiteMode.Strict;

});
services.ConfigureExternalCookie(options =>
{
options.Cookie.Name = "Identity.Application";
options.Cookie.SameSite = SameSiteMode.Strict;
});
...

Код: Выделить всё

        app.UseCookiePolicy(new CookiePolicyOptions()
{
MinimumSameSitePolicy = Microsoft.AspNetCore.Http.SameSiteMode.Lax,
HttpOnly = HttpOnlyPolicy.None
});
Что не так с настройкой? Может что-то не так или отсутствует?

Подробнее здесь: https://stackoverflow.com/questions/790 ... entity-web
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»