根据身份服务器4.1.0中的提供者和提供者ID查找用户

时间:2020-09-28 14:30:59

标签: c# asp.net asp.net-core asp.net-identity identityserver4

我正在尝试从Facebook和Google注册登录用户,我正在使用最新的Identity Server 4.1.0。

尝试通过提供者和提供者ID查找用户

<executable>/opt/java8/bin/javac</executable>

我无法使用TestUser,如何根据提供者和提供者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);
    }

1 个答案:

答案 0 :(得分:1)

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

以下是用于ASP.NET身份验证的示例: