public ActionResult TwoStepCode(TwoStepCodeModel model, string ReturnUrl = "") { string message = ""; using (ApolloEntities dc = new ApolloEntities()) { var user = dc.Users.Where(a => a.Code == model.codes).FirstOrDefault(); if (user != null) { if (Url.IsLocalUrl(ReturnUrl)) { return(Redirect(ReturnUrl)); } else { return(RedirectToAction("Index", "Home")); } } else { message = "Codigo incorrecto."; } } ViewBag.Message = message; return(View()); }
public ActionResult Registration() { using (ApolloEntities dc = new ApolloEntities()) { string query = "SELECT * FROM Places"; var itemAtivacao = dc.Places.SqlQuery(query).ToList(); string path = Server.MapPath("~/Models/Places.json"); TextWriter file = new StreamWriter(path); file.WriteLine("["); foreach (var item in itemAtivacao) { if (item.id == 253) { file.WriteLine("{ \"id\": \"" + item.id + "\", \"name\": \"" + item.name + "\", \"parent_id\": \"" + item.parent_id + "\"}"); } else { file.WriteLine("{ \"id\":\"" + item.id + "\", \"name\":\"" + item.name + "\", \"parent_id\":\"" + item.parent_id + "\"},"); } } file.WriteLine("]"); file.Close(); } return(View()); }
public ActionResult ResetPassword(string id) { //Verify the reset password link //Find account associated with this link //redirect to reset password page if (string.IsNullOrWhiteSpace(id)) { return(HttpNotFound()); } using (ApolloEntities dc = new ApolloEntities()) { var user = dc.Users.Where(a => a.ResetPasswordCode == id).FirstOrDefault(); if (user != null) { ResetPasswordModel model = new ResetPasswordModel(); model.ResetCode = id; return(View(model)); } else { return(HttpNotFound()); } } }
public ActionResult Desbloqueo(string id, string answer) { bool status = false; string message = ""; using (ApolloEntities dc = new ApolloEntities()) { var user = dc.Users.Where(a => a.ID == id).FirstOrDefault(); if (user != null) { //var v = dc.Users.Where(a => a.Phone == answer).FirstOrDefault(); if (string.Compare(user.Phone, answer) == 0) { user.IP = null; user.Contador = 3; dc.Configuration.ValidateOnSaveEnabled = false; dc.SaveChanges(); message = "¡Tu cuenta ha sido desbloqueada exitosamente!"; status = true; ViewBag.Message = message; } else { message = "La respuesta no coincide con tus datos, por favor verifica tu información."; ViewBag.ErrorMsg = message; } } ViewBag.Status = status; return(View()); } }
public ActionResult ResetPassword(ResetPasswordModel model) { var message = ""; if (ModelState.IsValid) { using (ApolloEntities dc = new ApolloEntities()) { var user = dc.Users.Where(a => a.ResetPasswordCode == model.ResetCode).FirstOrDefault(); if (user != null) { user.Password = Crypto.Hash(model.NewPassword); user.ResetPasswordCode = ""; dc.Configuration.ValidateOnSaveEnabled = false; dc.SaveChanges(); message = "Nueva contraseña actualizada correctamente."; } } } else { message = "Se ha producido un error al actualizar su contraseña."; } ViewBag.Message = message; return(View(model)); }
public ActionResult VerifyAccount(string idusuario, string valor) { bool Status = false; string message = ""; int idu = Convert.ToInt32(idusuario); //TempData["CreditCardInfo"] = idusuario; using (ApolloEntities dc = new ApolloEntities()) { var v = dc.Users.Where(a => a.UserID == idu).FirstOrDefault(); if (v != null) { //string fNameStr = v.GetType().GetProperty("UserID").GetValue(v, null).ToString(); //u.UserID = Convert.ToInt32(fNameStr); //dc.SaveChanges(); TempData["id"] = idusuario; Status = true; message = Convert.ToString(v.UserID); } else { ViewBag.Message = "Solicitud no válida."; } } ViewBag.Message = message; ViewBag.Status = Status; return(RedirectToAction("RegisterQuestion", "User", new { user = idu })); //RegisterQuestion(idusuario); }
public ActionResult VerifyAccount(string id) { bool Status = false; string message = ""; using (ApolloEntities dc = new ApolloEntities()) { dc.Configuration.ValidateOnSaveEnabled = false; // This line I have added here to avoid // Confirm password does not match issue on save changes var v = dc.Users.Where(a => a.ActivationCode == new Guid(id)).FirstOrDefault(); if (v != null) { v.IsEmailVerified = true; dc.SaveChanges(); Status = true; message = Convert.ToString(v.UserID); } else { ViewBag.Message = "Solicitud no válida."; } } ViewBag.Message = message; ViewBag.Status = Status; return(View()); //return RedirectToAction("RegisterQuestion", "User"); }
public ActionResult RespondQuestion(string user) { bool Status = false; string message = ""; int uid = 0; using (ApolloEntities dc = new ApolloEntities()) { var v = dc.Users.Where(a => a.Email == user).FirstOrDefault(); if (v != null) { uid = v.UserID; ViewBag.userid = v.UserID; var w = dc.Questions.Where(b => b.FUserID == uid).FirstOrDefault(); if (w != null) { ViewBag.Q1 = w.UserQuestionOne; ViewBag.Q2 = w.UserQuestionTwo; ViewBag.Q3 = w.UserQuestionThree; } } else { message = "No se han encontrado Preguntas de Seguridad asociadas a esta cuenta."; Status = true; } } ViewBag.Status = Status; ViewBag.Message = message; return(View()); }
public ActionResult RegisterQuestion(Question q) { bool Status = false; string message = ""; try { q.AnswerOne = Crypto.Hash(q.AnswerOne); q.AnswerTwo = Crypto.Hash(q.AnswerTwo); q.AnswerThree = Crypto.Hash(q.AnswerThree); using (ApolloEntities dc = new ApolloEntities()) { //Question qu1 = new Question(); //qu1.Answers = Answers; dc.Questions.Add(q); dc.SaveChanges(); message = "Las preguntas han sido guardadas exitosamente."; Status = true; } } catch (Exception e) { e.Message.ToString(); message = "No se ha podido registrar las preguntas."; } ViewBag.Message = message; ViewBag.Status = Status; return(View(q)); }
public bool IsIDExist(string idUser) { using (ApolloEntities dc = new ApolloEntities()) { var v = dc.Users.Where(a => a.ID == idUser).FirstOrDefault(); return(v != null); } }
public bool IsEmailExist(string email) { using (ApolloEntities dc = new ApolloEntities()) { var v = dc.Users.Where(a => a.Email == email).FirstOrDefault(); return(v != null); } }
public ActionResult Desbloqueo(UserLogin login) { string id = ""; bool status = false; using (ApolloEntities dc = new ApolloEntities()) { var user = dc.Users.Where(a => a.ID == login.ID).FirstOrDefault(); if (user != null) { id = user.ID; } } ViewBag.Status = status; ViewBag.User = id; return(View()); }
public ActionResult ForgotPassword(string Email) { //Verify Email ID //Generate Reset password link //Send Email string message = ""; //bool status = false; using (ApolloEntities dc = new ApolloEntities()) { var account = dc.Users.Where(a => a.Email == Email).FirstOrDefault(); if (account != null) { return(RedirectToAction("RespondQuestion", "User", new { user = Email })); } else { message = "Cuenta no encontrada."; } } ViewBag.Message = message; return(View()); }
public ApolloDAO() { _context = new ApolloEntities(); }
public ActionResult Login(UserLogin login, string ReturnUrl = "") { string message = ""; using (ApolloEntities dc = new ApolloEntities()) { Login logins = new Login(); logins.Email = login.Email; logins.Cedula = login.ID; logins.Date = DateTime.Now; dc.Configuration.ValidateOnSaveEnabled = false; dc.Logins.Add(logins); dc.SaveChanges(); var v = dc.Users.Where(a => a.Email == login.Email).FirstOrDefault(); if (v != null) { if (!v.IsEmailVerified) { ViewBag.Message = "Por favor verifique su correo electrónico antes de ingresar."; return(View()); } if (string.Compare(Crypto.Hash(login.Password), v.Password) == 0) { int timeout = login.RememberMe ? 525600 : 20; var ticket = new FormsAuthenticationTicket(login.Email, login.RememberMe, timeout); string encrypted = FormsAuthentication.Encrypt(ticket); var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encrypted); cookie.Expires = DateTime.Now.AddMinutes(timeout); cookie.HttpOnly = true; Response.Cookies.Add(cookie); if (Url.IsLocalUrl(ReturnUrl)) { var link = v.ID; SendVerificationLinkEmail(v.Email, link, "Desbloqueo"); return(Redirect(ReturnUrl)); } else { Random generator = new Random(); var codes = generator.Next(0, 999999).ToString("D6");; v.Code = codes; v.Contador = 3; dc.Configuration.ValidateOnSaveEnabled = false; dc.SaveChanges(); SendVerificationLinkEmail(v.Email, codes, "TwoStepCode"); return(RedirectToAction("TwoStepCode", "User")); } } else if (v.IP != null) { var link = v.ID; SendVerificationLinkEmail(v.Email, link, "Desbloqueo"); return(RedirectToAction("Bloqueo", "User")); } else { message = "Alguna de sus credenciales no es correcta, intente de nuevo."; v.Contador = v.Contador - 1; dc.Configuration.ValidateOnSaveEnabled = false; dc.SaveChanges(); if (v.Contador == 0) { var host = Dns.GetHostEntry(Dns.GetHostName()); foreach (var ip in host.AddressList) { v.IP = ip.ToString(); dc.Configuration.ValidateOnSaveEnabled = false; dc.SaveChanges(); message = "Se ha bloqueado tu IP por sobrepasar el número de intentos"; } } } } else { message = "Alguna de sus credenciales no es correcta, intente de nuevo."; } } ViewBag.Message = message; return(View()); }
public ActionResult RespondQuestion(Question model) { bool Status = false; string message = ""; bool right = false; using (ApolloEntities dc = new ApolloEntities()) { var v = dc.Questions.Where(a => a.FUserID == model.FUserID).FirstOrDefault(); if (v != null) { if (model.UserQuestionOne == v.UserQuestionOne) { if (string.Compare(Crypto.Hash(model.AnswerOne), v.AnswerOne) == 0) { right = true; } else { message = "La respuesta no es correcta. Intente de nuevo."; Status = true; } } if (model.UserQuestionOne == v.UserQuestionTwo) { if (string.Compare(Crypto.Hash(model.AnswerOne), v.AnswerTwo) == 0) { right = true; } else { message = "La respuesta no es correcta. Intente de nuevo."; Status = true; } } if (model.UserQuestionOne == v.UserQuestionThree) { if (string.Compare(Crypto.Hash(model.AnswerOne), v.AnswerThree) == 0) { right = true; } else { message = "La respuesta no es correcta. Intente de nuevo."; Status = true; } } if (right == true) { var w = dc.Users.Where(b => b.UserID == model.FUserID).FirstOrDefault(); if (w != null) { //Send email for reset password string resetCode = Guid.NewGuid().ToString(); SendVerificationLinkEmail(w.Email, resetCode, "ResetPassword"); w.ResetPasswordCode = resetCode; dc.Configuration.ValidateOnSaveEnabled = false; dc.SaveChanges(); message = "El enlace para restablecer la contraseña ha sido enviado a su correo electrónico."; Status = true; } else { message = "No ha sido posible enviar las instrucciones para reestaurar la contraseña."; Status = true; } } } else { message = "No se han encontrado Preguntas de Seguridad asociadas a esta cuenta."; Status = true; } } ViewBag.Status = Status; ViewBag.Message = message; return(View()); }
public ActionResult Registration([Bind(Exclude = "IsEmailVerified,ActivationCode")] User user) { bool Status = false; string message = "", section, province, district; int sec, pro, dis; pro = Int32.Parse(user.Province); sec = Int32.Parse(user.Section); dis = Int32.Parse(user.District); // Model Validation if (ModelState.IsValid) { #region //Email already exists var isExistA = IsEmailExist(user.Email); if (isExistA) { ModelState.AddModelError("EmailExist", "Ya existe una cuenta con el correo electrónico ingresado"); return(View(user)); } #endregion #region //ID already exists var isExistB = IsIDExist(user.ID); if (isExistB) { ModelState.AddModelError("IDExist", "Ya existe una cuenta con el la cédula ingresada"); return(View(user)); } #endregion #region Generate Activation Code user.ActivationCode = Guid.NewGuid(); #endregion #region Password Hashing user.Password = Crypto.Hash(user.Password); user.ConfirmPassword = Crypto.Hash(user.ConfirmPassword); // #endregion user.IsEmailVerified = false; user.Contador = 3; #region Save to Database using (ApolloEntities dc = new ApolloEntities()) { var p = dc.Places.Where(a => a.id == pro).FirstOrDefault(); if (p != null) { province = p.name; user.Province = province; } var s = dc.Places.Where(a => a.id == sec).FirstOrDefault(); if (s != null) { section = s.name; user.Section = section; } var d = dc.Places.Where(a => a.id == dis).FirstOrDefault(); if (d != null) { district = d.name; user.District = district; } dc.Configuration.ValidateOnSaveEnabled = false; dc.Users.Add(user); dc.SaveChanges(); //Send Email to User SendVerificationLinkEmail(user.Email, user.ActivationCode.ToString()); message = "Registro realizado correctamente. El enlace de activación de la cuenta" + " ha sido enviado a su correo electrónico: " + user.Email; Status = true; } #endregion } else { message = "Solicitud no válida"; } ViewBag.Message = message; ViewBag.Status = Status; return(View(user)); }