我正在尝试从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);
}
答案 0 :(得分:1)
在快速入门中,您使用的是示例UI之一。如果您需要在用户界面中使用自定义userStore,则由您自行调整和实施。
以下是用于ASP.NET身份验证的示例: