public async Task <IHttpActionResult> ConfirmEmail(string userId = "", string code = "") { if (string.IsNullOrWhiteSpace(userId) || string.IsNullOrWhiteSpace(code)) { ModelState.AddModelError("", "User Id and Code are required"); return(BadRequest(ModelState)); } //IdentityResult result = await UserManager.ConfirmEmailAsync(userId, code); using (lextraDBEntities entities = new lextraDBEntities()) { UserInfo userinfo = new UserInfo(); userinfo = await entities.UserInfoes.FirstOrDefaultAsync(u => u.UserID == userId); string match = GetHashSha256(code, userId); if (userinfo.Code == match) { userinfo.Verified = "true"; } else { return(BadRequest()); } //entities.UserInfoes.Add(userinfo); entities.SaveChanges(); } return(Ok()); }
public async Task <IHttpActionResult> Register(RegisterBindingModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var user = new ApplicationUser() { UserName = model.UserName, Email = model.Email }; IdentityResult result = await UserManager.CreateAsync(user, model.Password); if (!result.Succeeded) { return(GetErrorResult(result)); } using (lextraDBEntities entities = new lextraDBEntities()) { UserInfo userinfo = await entities.UserInfoes.FirstOrDefaultAsync(u => u.Email == model.Email); userinfo.FirstName = model.FirstName; userinfo.LastName = model.LastName; userinfo.ZipCode = model.ZipCode; //entities.UserInfoes.Add(userinfo); entities.SaveChanges(); } return(Ok()); }
public async Task <IHttpActionResult> ForgotPassword(ForgotPasswordViewModel model) { try { if (ModelState.IsValid) { var user = await UserManager.FindByEmailAsync(model.Email); //If user has to activate his email to confirm his account, the use code listing below //if (user == null || !(await UserManager.IsEmailConfirmedAsync(user.Id))) //{ // return Ok(); //} if (user == null) { return(BadRequest()); } // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771 // Send an email with this link var guid = Guid.NewGuid().ToString(); string code = GetHashSha256(guid, model.Email); using (lextraDBEntities entities = new lextraDBEntities()) { lextraResetPassword userinfo = await entities.lextraResetPasswords.FirstOrDefaultAsync(u => u.Email == model.Email); if (userinfo != null) { entities.lextraResetPasswords.Remove(userinfo); } lextraResetPassword userdata = new lextraResetPassword { Email = model.Email, Code = code }; entities.lextraResetPasswords.Add(userdata); entities.SaveChanges(); } var callbackUrl = "http://*****:*****@"<a href=\""" + callbackUrl + "\">here</a"); SendEmail(user.Email, "Reset Password for LEXREWARDS", body.ToString()); return(Ok()); } // If we got this far, something failed, redisplay form return(BadRequest(ModelState)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public async Task <IHttpActionResult> ValidateEmailAsync(RegisterAndValidateEmailBindingModel model) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var user = new ApplicationUser() { UserName = model.Username, Email = model.Email }; // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); var guid = Guid.NewGuid().ToString().Substring(0, Guid.NewGuid().ToString().IndexOf("-")); string code = GetHashSha256(guid, user.Id); using (lextraDBEntities entities = new lextraDBEntities()) { UserInfo userinfo = await entities.UserInfoes.FirstOrDefaultAsync(u => u.Email == model.Email); if (userinfo != null) { entities.UserInfoes.Remove(userinfo); } UserInfo userdata = new UserInfo { UserName = model.Username, Email = model.Email, UserID = user.Id, Code = code, Verified = "false" }; entities.UserInfoes.Add(userdata); entities.SaveChanges(); } SendEmail(user.Email, "Confirm your account", $"Your OTP for Email Confirmation is {guid}"); return(Ok(user.Id)); } catch (Exception ex) { return(InternalServerError(ex)); } }