Я построил решение на основе Identity Server 4 для клиента, и почти все прекрасно работает :) Однако у меня есть одна проблема, которая не согласована;иногда это работает, а иногда это не удается.Это когда пользователь вошел в систему, заходит на страницу настроек, а затем пытается связать внешний аккаунт (например, Facebook или Google) с учетной записью.
Контроллер вызывается, и следующий код выполняется без проблем:
public async Task<IActionResult> LinkLogin(string provider, string cancelUrl = null)
{
// Clear the existing external cookie to ensure a clean login process
await this.HttpContext.SignOutAsync(IdentityConstants.ExternalScheme);
// Request a redirect to the external login provider to link a login for the current user
var redirectUrl = this.Url.Action(nameof(this.LinkLoginCallback));
var properties = this.signInManager.ConfigureExternalAuthenticationProperties(
provider,
redirectUrl,
this.userManager.GetUserId(this.User));
return new ChallengeResult(provider, properties);
}
Но обратный вызов не всегда вызывается, и когда он терпит неудачу, я получаю следующую ошибку в журналах:
Identity.Application не был аутентифицирован.Сообщение об ошибке: сбой снятия защиты с билета