public ActionResult Register(UserRegModel register) { if (ModelState.IsValid) { User user = new Knowledgeable.User(); user = db.Users.Where(x => x.Email == register.Email).FirstOrDefault(); if(user == null) { user = new User(); user.UserID = Guid.NewGuid(); user.Email = register.Email; user.Name = register.Name; user.Surname = register.Surname; string salt = BCrypt.Net.BCrypt.GenerateSalt(4); string hashed1 = BCrypt.Net.BCrypt.HashPassword(register.Password, salt); string hashed2 = BCrypt.Net.BCrypt.HashPassword(register.Password, hashed1); user.Salt = salt; user.Password = hashed2; user.Active = false; db.Users.Add(user); db.SaveChanges(); string name = register.Name; string Subject = "Email Confirmation"; string mailContent = "<p>Thank you for your registration. Click on the link below to confirm your account.</p> <a href=\"http://localhost:23060/Login/EmailConfirmed/" + user.UserID + "\">Click Here</a>"; Utility.SendMail(name, user.Email, Subject, mailContent); return RedirectToAction("ConfirmEmail"); } else { ViewBag.Error = "Email already exists."; return View(); } } return View(); }
public ActionResult ResetPassword(UserRegModel userRegModel) { string salt = BCrypt.Net.BCrypt.GenerateSalt(4); string hashed1 = BCrypt.Net.BCrypt.HashPassword(userRegModel.Password, salt); string hashed2 = BCrypt.Net.BCrypt.HashPassword(userRegModel.Password, hashed1); User user = db.Users.Find(userRegModel.UserID); user.Password = hashed2; user.Salt = salt; db.Entry(user).State = EntityState.Modified; db.SaveChanges(); ResetPassword resetPassword = db.ResetPasswords.Find(user.UserID); db.ResetPasswords.Remove(resetPassword); db.SaveChanges(); return RedirectToAction("Login"); }
public ActionResult ResetPassword(Guid? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } ResetPassword resetPassword = db.ResetPasswords.Where(x => x.ResetID == id).FirstOrDefault(); if(resetPassword != null) { User user = db.Users.Find(resetPassword.UserID); UserRegModel userRegModel = new UserRegModel(); userRegModel.UserID = user.UserID; userRegModel.Email = user.Email; return View(userRegModel); } else { return RedirectToAction("Register"); } }