identity server 4.1.0中根据provider和provider Id查找用户

Find the user based on the provider and provider Id in identity server 4.1.0

我正在尝试从 Facebook 和 Google 注册登录用户,我正在使用最新的身份服务器 4.1.0。

正在尝试通过提供商和提供商 ID 查找用户

private async Task<(ApplicationUser user, string provider, string providerUserId, IEnumerable<Claim> claims)> FindUserFromExternalProvider(AuthenticateResult result)
    {
        var externalUser = result.Principal;
        var userIdClaim = externalUser.FindFirst(JwtClaimTypes.Subject) ??
                          externalUser.FindFirst(ClaimTypes.NameIdentifier) ??
                          throw new Exception("Unknown userid");

        // remove the user id claim so we don't include it as an extra claim if/when we provision the user
        var claims = externalUser.Claims.ToList();
        claims.Remove(userIdClaim);

        var provider = result.Properties.Items["scheme"];
        var providerUserId = userIdClaim.Value;

        // find external user
        var user = await _userManager.FindByLoginAsync(provider, providerUserId);
        //var user = _users.FindByExternalProvider(provider, providerUserId);

        return (user, provider, providerUserId, claims);
    }

我无法使用 TestUser,如何根据提供商和提供商 Id 获取用户信息

// lookup our user and external provider info
            var (user, provider, providerUserId, claims) = await FindUserFromExternalProvider(result);
            if (user == null)
            {
               // SignUp user
                
            }

您使用的是示例 UI 之一,作为快速入门的一部分。如果您需要在 UI 中使用自定义 userStore,则由您自行调整和实施。

下面是一个使用 ASP.NET 身份的示例: