ASP.NET Core 2.2 iframe Дочернее приложение теряет зарегистрированного пользователя при перенаправлении - PullRequest
0 голосов
/ 02 ноября 2019

Родительский сайт имеет Content-Security-Policy, установленный на frame-src https://*.mychildsite.com. Он передает информацию о входе пользователя в систему, и я могу войти в систему пользователя в дочернее приложение, используя менеджер входа в систему. Все работает до этого момента. Как только я перенаправляю пользователя, пользователь теряется.

Запуск дочернего приложения имеет:

services.Configure<CookiePolicyOptions>(options =>
{
    options.CheckConsentNeeded = context => false;
    options.MinimumSameSitePolicy = SameSiteMode.None;
    options.Secure = CookieSecurePolicy.SameAsRequest;
 });

и

services.AddAntiforgery(options =>
{
    options.SuppressXFrameOptionsHeader = true;
});

Код SignInUserAsync на странице Razor:

private async Task<ActionResult> SignInUserAsync(User user)
{
    await _signInManager.SignOutAsync().ConfigureAwait(false);
    await _signInManager.SignInAsync(user, isPersistent: true).ConfigureAwait(false);

    return RedirectToAction($"Index", "IframeDocuments");
}

Фактическая ошибка в контроллере (userId равен нулю):

var userId = User.FindFirstValue(ClaimTypes.NameIdentifier);

Есть ли способ сохранить Identity User вошедшим в систему? У меня есть обходной путь с передачей идентификатора пользователя, но я бы предпочел способ Identity.

Спасибо.

...