public async Task <IActionResult> ConfirmEmail(string userId, string code) { try { ApplicationUserFromIdentityModel user = await _userManager.FindByIdAsync(userId); if (user.EmailConfirmed) { return(Ok("Email already Confirmed!")); } if (user != null) { var result = await _userManager.ConfirmEmailAsync(user, code); if (result.Succeeded) { return(Ok("Confirmed")); } } return(NotFound()); } catch (Exception) { return(BadRequest()); } }
public async Task <IActionResult> GetConfirmationCode(UserContractUserModel model) { try { if (model != null & model.Email != null) { ApplicationUserFromIdentityModel user = await _userManager.FindByEmailAsync(model.Email); if (user != null) { var checkUserPassword = await _userManager.CheckPasswordAsync(user, model.Password); if (checkUserPassword) { var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); return(Ok(code)); } } } return(BadRequest()); } catch (Exception) { return(BadRequest()); } }
/// <summary> /// Check if user is admin or authorized to update/delete the item. /// </summary> /// <param name="currentUser">Current user of the httpcontext</param>currentUser /// <param name="correspondingUserId">User Id of the corresponding item</param> /// <returns></returns> protected async Task <bool> CheckIfAuthorized(ApplicationUserFromIdentityModel currentUser, string correspondingUserId) { try { if (await _userManager.IsInRoleAsync(currentUser, "Admin") || String.Equals(correspondingUserId, currentUser.Id)) { return(true); } return(false); } catch (Exception) { return(false); } }
public async Task <IActionResult> ResetPassword(ResetPasswordContractUserModel model) { if (ModelState.IsValid) { if (model.UserId != null) { ApplicationUserFromIdentityModel user = await _userManager.FindByIdAsync(model.UserId); var result = await _userManager.ResetPasswordAsync(user, model.Code, model.Password); if (!result.Succeeded) { return(GetErrorResult(result)); } return(Ok()); } return(NotFound()); } return(BadRequest(ModelState)); }
public async Task <IActionResult> GetForgotPasswordCode(string email) { var model = new ForgotPasswordContractUserModel(); if (ModelState.IsValid) { ApplicationUserFromIdentityModel user = await _userManager.FindByEmailAsync(email); if (user != null) { var code = await _userManager.GeneratePasswordResetTokenAsync(user); model.Code = HttpUtility.UrlEncode(code); model.Email = email; return(Ok(code)); } return(NotFound()); } return(BadRequest()); }
public async Task <IActionResult> Register(RegisterUserContractModel userModel) { try { if (!ModelState.IsValid) { return(BadRequest()); } var user = new ApplicationUserFromIdentityModel { UserName = userModel.UserName, Email = userModel.Email, FirstName = userModel.FirstName, LastName = userModel.LastName, PhoneNumber = userModel.PhoneNumber, CreatedOn = DateTime.Now, UpdatedOn = DateTime.Now }; IdentityResult result = await _userManager.CreateAsync(user, userModel.Password); if (!result.Succeeded) { return(GetErrorResult(result)); } // return specifics? // return Created(); return(Ok()); } catch (Exception) { return(new StatusCodeResult(StatusCodes.Status500InternalServerError)); } }