public async Task <IActionResult> Register([FromBody] RegisterRequestViewModel model) { //var aVal = 0; var blowUp = 1 / aVal; if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var user = new HollywoodBetTestUser { UserName = model.Email, Email = model.Email }; var result = await _userManager.CreateAsync(user, model.Password); if (!result.Succeeded) { return(BadRequest(result.Errors)); } await _userManager.AddClaimAsync(user, new System.Security.Claims.Claim("userName", user.UserName)); //await _userManager.AddClaimAsync(user, new System.Security.Claims.Claim("name", user.Name)); await _userManager.AddClaimAsync(user, new System.Security.Claims.Claim("email", user.Email)); await _userManager.AddClaimAsync(user, new System.Security.Claims.Claim("role", model.Role)); return(Ok(user)); }
private static void AddUserToRole(HollywoodBetTestUser user, UserManager <HollywoodBetTestUser> userMgr, RoleManager <IdentityRole> roleMgr) { IdentityResult result = null; bool roleExists = false; switch (user.UserName.ToLower()) { case "alice": roleExists = roleMgr.RoleExistsAsync("CUSTOMER").Result; if (roleExists) { result = userMgr.AddToRoleAsync(user, HollywoodBetTest.Models.Roles.Customer).Result; } break; case "bob": roleExists = roleMgr.RoleExistsAsync("MANAGER").Result; if (roleExists) { result = userMgr.AddToRoleAsync(user, HollywoodBetTest.Models.Roles.Manager).Result; } break; case "admin": roleExists = roleMgr.RoleExistsAsync("ADMIN").Result; if (roleExists) { result = userMgr.AddToRoleAsync(user, HollywoodBetTest.Models.Roles.Admin).Result; } break; default: break; } if (result.Succeeded) { Log.Debug($"{user.UserName} added to role"); } else { Log.Error($"Addding {user.UserName} to role failed. {result.Errors.FirstOrDefault().Description}"); } }
public async Task <IActionResult> OnPostAsync(LocalRegisterModel data) { if (ModelState.IsValid) { var user = new HollywoodBetTestUser { UserName = data.Email }; if (ModelState.IsValid) { var result = await _userManager.CreateAsync(user); if (result.Succeeded) { } } } return(Ok()); }
private async Task <HollywoodBetTestUser> AutoProvisionUserAsync(string provider, string providerUserId, IEnumerable <Claim> claims) { // create a list of claims that we want to transfer into our store var filtered = new List <Claim>(); // user's display name var name = claims.FirstOrDefault(x => x.Type == JwtClaimTypes.Name)?.Value ?? claims.FirstOrDefault(x => x.Type == ClaimTypes.Name)?.Value; if (name != null) { filtered.Add(new Claim(JwtClaimTypes.Name, name)); } else { var first = claims.FirstOrDefault(x => x.Type == JwtClaimTypes.GivenName)?.Value ?? claims.FirstOrDefault(x => x.Type == ClaimTypes.GivenName)?.Value; var last = claims.FirstOrDefault(x => x.Type == JwtClaimTypes.FamilyName)?.Value ?? claims.FirstOrDefault(x => x.Type == ClaimTypes.Surname)?.Value; if (first != null && last != null) { filtered.Add(new Claim(JwtClaimTypes.Name, first + " " + last)); } else if (first != null) { filtered.Add(new Claim(JwtClaimTypes.Name, first)); } else if (last != null) { filtered.Add(new Claim(JwtClaimTypes.Name, last)); } } // email var email = claims.FirstOrDefault(x => x.Type == JwtClaimTypes.Email)?.Value ?? claims.FirstOrDefault(x => x.Type == ClaimTypes.Email)?.Value; if (email != null) { filtered.Add(new Claim(JwtClaimTypes.Email, email)); } var user = new HollywoodBetTestUser { UserName = Guid.NewGuid().ToString(), }; var identityResult = await _userManager.CreateAsync(user); if (!identityResult.Succeeded) { throw new Exception(identityResult.Errors.First().Description); } if (filtered.Any()) { identityResult = await _userManager.AddClaimsAsync(user, filtered); if (!identityResult.Succeeded) { throw new Exception(identityResult.Errors.First().Description); } } identityResult = await _userManager.AddLoginAsync(user, new UserLoginInfo(provider, providerUserId, provider)); if (!identityResult.Succeeded) { throw new Exception(identityResult.Errors.First().Description); } return(user); }