public virtual async Task <IdentityUser> CreateUserAsync(string userName, string providerName) { await IdentityOptions.SetAsync(); var externalUser = await GetUserInfoAsync(userName); NormalizeExternalLoginUserInfo(externalUser, userName); var user = new IdentityUser( GuidGenerator.Create(), userName, externalUser.Email, tenantId: CurrentTenant.Id ); user.Name = externalUser.Name; user.Surname = externalUser.Surname; user.IsExternal = true; user.SetEmailConfirmed(externalUser.EmailConfirmed ?? false); user.SetPhoneNumber(externalUser.PhoneNumber, externalUser.PhoneNumberConfirmed ?? false); (await UserManager.CreateAsync(user)).CheckErrors(); if (externalUser.TwoFactorEnabled != null) { (await UserManager.SetTwoFactorEnabledAsync(user, externalUser.TwoFactorEnabled.Value)).CheckErrors(); } (await UserManager.AddDefaultRolesAsync(user)).CheckErrors(); (await UserManager.AddLoginAsync( user, new UserLoginInfo( providerName, externalUser.ProviderKey, providerName ) ) ).CheckErrors(); return(user); }