public virtual ActionResult LogOn(LogOnModel model, string returnUrl) { if (!ModelState.IsValid) { if (Request.IsAjaxRequest()) { return(PartialView(MVC.User.Views._LogOn, model)); } return(View(model)); } string userName = string.Empty; int userId = 0; const string emailRegPattern = @"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"; string ip = Request.ServerVariables["REMOTE_ADDR"]; VerifyUserStatus verificationResult = Regex.IsMatch(model.Identity, emailRegPattern) ? _userService.VerifyUserByEmail(model.Identity, model.Password, ref userName, ref userId, ip) : _userService.VerifyUserByUserName(model.Identity, model.Password, ref userName, ref userId, ip); switch (verificationResult) { case VerifyUserStatus.VerifiedSuccessfully: { string roleOfTheUser = _roleService.GetRoleByUserId(userId).Name; // set user role cookie SetAuthCookie(userName, roleOfTheUser, model.RememberMe); _uow.SaveChanges(); if (Request.IsAjaxRequest()) { return(JavaScript(IsValidReturnUrl(returnUrl) ? string.Format("window.location ='{0}';", returnUrl) : "window.location.reload();")); } return(RedirectToAction(MVC.Home.ActionNames.Index, MVC.Home.Name)); } case VerifyUserStatus.UserIsbaned: ModelState.AddModelError("", "حساب کاربری شما مسدود است"); break; default: ModelState.AddModelError("", "اطلاعات وارد شده صحیح نمی باشند"); break; } if (Request.IsAjaxRequest()) { return(PartialView(MVC.User.Views._LogOn, model)); } return(View(model)); }
//[CaptchaVerify("کلمه وارد شده صحیح نمی باشد")] public virtual ActionResult LogOn(LogOnModel model, string returnUrl) { if (!ModelState.IsValid) { ViewBag.ShowCaptcha = true; TempData["ShowCaptcha"] = true; if (Request.IsAjaxRequest()) { return(PartialView(MVC.User.Views._LogOn, model)); } return(View(model)); } else if (TempData["ShowCaptcha"] != null && TempData["ShowCaptcha"].ToString().ToLower() == "true" && !this.IsCaptchaValid("Invalid captcha")) { ModelState.AddModelError("", "کلمه وارد شده صحیح نمی باشد"); ViewBag.ShowCaptcha = true; if (Request.IsAjaxRequest()) { return(PartialView(MVC.User.Views._LogOn, model)); } return(View(model)); } ViewBag.ShowCaptcha = false; TempData["ShowCaptcha"] = false; string userName = string.Empty; int userId = 0; string roleOfTheUser = ""; const string emailRegPattern = @"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"; string ip = Request.ServerVariables["REMOTE_ADDR"]; VerifyUserStatus verificationResult = Regex.IsMatch(model.Identity, emailRegPattern) ? _userService.VerifyUserByEmail(model.Identity, model.Password, ref userName, ref userId, ip) : _userService.VerifyUserByUserName(model.Identity, model.Password, ref userName, ref userId, ip); switch (verificationResult) { case VerifyUserStatus.VerifiedSuccessfully: { roleOfTheUser = _roleService.GetRoleByUserId(userId).Name; // set user role cookie SetAuthCookie(userName, roleOfTheUser, model.RememberMe); _uow.SaveChanges(); if (Request.IsAjaxRequest()) { return(JavaScript(IsValidReturnUrl(returnUrl) ? string.Format("window.location ='{0}';", returnUrl) : "window.location.reload();")); } if (!roleOfTheUser.ToLower().Contains("admin")) { return(RedirectToAction(MVC.Home.ActionNames.Index, MVC.Home.Name)); } } break; case VerifyUserStatus.UserIsbaned: ModelState.AddModelError("", "حساب کاربری شما مسدود و یا حذف است"); ViewBag.ShowCaptcha = true; TempData["ShowCaptcha"] = true; break; default: ModelState.AddModelError("", "اطلاعات وارد شده صحیح نمی باشند"); ViewBag.ShowCaptcha = true; TempData["ShowCaptcha"] = true; break; } if (Request.IsAjaxRequest()) { return(PartialView(MVC.User.Views._LogOn, model)); } if (roleOfTheUser.ToLower().Contains("admin")) { return(RedirectToAction(MVC.Admin.Home.ActionNames.Index, MVC.Admin.Home.Name)); } return(View(model)); }