private async Task <Entities.User> AutoProvisionWindowsUser(string provider, string providerUserId, IEnumerable <Claim> claims) { if (_windowsKeyMap.ContainsKey(providerUserId)) { // find matching user var existingUser = await _localUserService.GetUserBySubjectAsync(_windowsKeyMap[providerUserId]); if (existingUser != null) { await _localUserService.AddExternalProviderToUser( existingUser.Subject, provider, providerUserId); await _localUserService.SaveChangesAsync(); return(existingUser); } } var user = _localUserService.ProvisionUserFromExternalIdentity(provider, providerUserId, new List <Claim>()); await _localUserService.SaveChangesAsync(); return(user); }
public async Task <IActionResult> RegisterUserFromFacebook( RegisterUserFromFacebookViewModel model) { if (!ModelState.IsValid) { return(View(model)); } //Create claims var claims = new List <Claim>() { new Claim(JwtClaimTypes.Email, model.Email), new Claim(JwtClaimTypes.GivenName, model.GivenName), new Claim(JwtClaimTypes.FamilyName, model.FamilyName), new Claim(JwtClaimTypes.Address, model.Address), new Claim("country", model.Country) }; //Provision the user _localUserService.ProvisionUserFromExternalIdentity(model.Provider, model.ProviderUserId, claims); await _localUserService.SaveChangesAsync(); //redirect return(RedirectToAction("Callback", "External")); }
public async Task <IActionResult> RegisterUserFromGoogle( RegisterUserFromGoogleViewModel model) { if (!ModelState.IsValid) { return(View(model)); } // create claims var claims = new List <Claim>() { new Claim(JwtClaimTypes.Email, model.Email), new Claim(JwtClaimTypes.GivenName, model.GivenName), new Claim(JwtClaimTypes.FamilyName, model.FamilyName), new Claim(JwtClaimTypes.Address, model.Address), new Claim("country", model.Country) }; // provision the user var user = _localUserService. ProvisionUserFromExternalIdentity(model.UserName, model.Email, model.Provider, model.ProviderUserId, claims); await _localUserService.SaveChangesAsync(); //create an activation link var link = Url.ActionLink("ActivateUser", "UserRegistration", new { securityCode = user.SecurityCode }); if (_logger.IsEnabled(LogLevel.Debug)) { _logger.LogDebug(link); } return(View("ActivationCodeSent")); }
private async Task <User> AutoProvisionUser(string provider, string providerUserId, IEnumerable <Claim> claims) { var user = _localUserService.ProvisionUserFromExternalIdentity(provider, providerUserId, claims.ToList()); await _localUserService.SaveChangesAsync(); return(user); }
private async Task <User> AutoProvisionUser(string provider, string providerUserId, IEnumerable <Claim> claims) { var mappedClaims = new List <Claim>(); foreach (var claim in claims) { if (_facebookClaimTypeMap.ContainsKey(claim.Type)) { mappedClaims.Add(new Claim(_facebookClaimTypeMap[claim.Type], claim.Value)); } } //var user = _users.AutoProvisionUser(provider, providerUserId, claims.ToList()); var user = _localUserService.ProvisionUserFromExternalIdentity(provider, providerUserId, mappedClaims); await _localUserService.SaveChangesAsync(); return(user); }
private async Task <Rekommend.IDP.Entities.User> AutoProvisionUser(string provider, string providerUserId, IEnumerable <Claim> claims) { var mappedClaims = new List <Claim>(); // map the claims and ignore those for which no mapping exists foreach (var claim in claims) { if (_facebookClaimTypeMap.ContainsKey(claim.Type)) { mappedClaims.Add(new Claim(_facebookClaimTypeMap[claim.Type], claim.Value)); } } var user = _localUserService.ProvisionUserFromExternalIdentity(provider, providerUserId, mappedClaims); await _localUserService.SaveChangesAsync(); return(user); }
private async Task <Marvin.IDP.Entities.User> AutoProvisionUser( string provider, string providerUserId, IEnumerable <Claim> claims) { var mappedClaims = new List <Claim>(); foreach (var claim in claims) { if (_googleClaimTypeMap.ContainsKey(claim.Type)) { mappedClaims.Add(new Claim(_googleClaimTypeMap[claim.Type], claim.Value)); } } var user = _localUserService.ProvisionUserFromExternalIdentity("", "", provider, providerUserId, mappedClaims); await _localUserService.SaveChangesAsync(); return(user); }