public ActionResult Register(User u) { UsersOperations uo = new UsersOperations(); bool status = new AccountsController().VerifyCaptcha(this); if (status == false) { ViewData["error_message"] = "Google reCaptcha validation failed"; new LogsOperations().AddLog( new Log() { Controller = RouteData.Values["controller"].ToString() + "/" + RouteData.Values["action"].ToString(), Exception = "reCaptcha Failed", Time = DateTime.Now, Message = "reCaptcha Failed" } ); } if (status) { try { if ((u.Password.Length >= 6) && (u.Password.Length <= 15)) { if (Regex.IsMatch(u.Password, @"^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,15}$")) { if (ModelState.IsValid) { uo.Register(u); ViewData["success_message"] = "User registered successfully"; TempData["success_message"] = "User registered successfully"; ModelState.Clear(); return(RedirectToAction("Login", "Accounts")); } else { new LogsOperations().AddLog( new Log() { Controller = RouteData.Values["controller"].ToString() + "/" + RouteData.Values["action"].ToString(), Exception = "Invalid Model State", Time = DateTime.Now, Message = "Invalid Model State" } ); } } else { ModelState.AddModelError("Password", "Passwords must contain at least one digit, one uppercase and one lowercase"); new LogsOperations().AddLog( new Log() { Controller = RouteData.Values["controller"].ToString() + "/" + RouteData.Values["action"].ToString(), Exception = "Weak password strength", Time = DateTime.Now, Message = "Weak password strength" } ); } } else { ModelState.AddModelError("Password", "Passwords must be between 6 and 15 characters long"); new LogsOperations().AddLog( new Log() { Controller = RouteData.Values["controller"].ToString() + "/" + RouteData.Values["action"].ToString(), Exception = "Invalid password length", Time = DateTime.Now, Message = "Invalid password length" } ); } } catch (UsernameExistsException ex) { ModelState.AddModelError("Username", ex.Message); new LogsOperations().AddLog( new Log() { Controller = RouteData.Values["controller"].ToString() + "/" + RouteData.Values["action"].ToString(), Exception = ex.Message.ToString(), Time = DateTime.Now, Message = ex.Message.ToString() } ); } catch (Exception ex) { ViewData["error_message"] = "User registration failed"; new LogsOperations().AddLog( new Log() { Controller = RouteData.Values["controller"].ToString() + "/" + RouteData.Values["action"].ToString(), Exception = ex.Message.ToString(), Time = DateTime.Now, Message = ex.Message.ToString() } ); } } return(View()); }
public ActionResult Login(string username, string password) { if (new UsersOperations().IsBlocked(username)) { int time = new UsersOperations().RemainingBlocked(username); ViewData["error_message"] = "You are blocked for " + time + " more minutes. Try again later."; new LogsOperations().AddLog( new Common.Log() { Controller = RouteData.Values["controller"].ToString() + "/" + RouteData.Values["action"].ToString(), Exception = "User blocked", Time = DateTime.Now, Message = username + " tried to log in but is currently blocked" } ); } else { bool status = false; try { status = new AccountsController().VerifyCaptcha(this); } catch (Exception e) { ViewData["error_message"] = e.Message; return(View()); } if (status == false) { ViewData["error_message"] = "Google reCaptcha validation failed"; new LogsOperations().AddLog( new Common.Log() { Controller = RouteData.Values["controller"].ToString() + "/" + RouteData.Values["action"].ToString(), Exception = "reCaptcha Failed", Time = DateTime.Now, Message = username + ": reCaptcha Failed" } ); } if (status) { if (new UsersOperations().Login(username, password) == true) { FormsAuthentication.SetAuthCookie(username, true); return(RedirectToAction("Index", "Documents")); } else { new LogsOperations().AddLog( new Common.Log() { Controller = RouteData.Values["controller"].ToString() + "/" + RouteData.Values["action"].ToString(), Exception = "Invalid Password", Time = DateTime.Now, Message = username + ": Invalid Password" } ); ViewData["message"] = "An invalid username or password was entered. Please try again."; } } } return(View()); }