public ActionResult Index(AcessoModel model, string returnUrl) { if (ModelState.IsValid) { try { if (_servicoUsuario.ValidarUsuario(model.Email, model.Senha)) { var usuario = _servicoUsuario.ObterTodos(u => u.Email == model.Email).First(); var serializeModel = new AppPrincipalSerializedModel { Id = usuario.Id, Nome = usuario.Nome, Sobrenome = usuario.Sobrenome, Email = usuario.Email }; var serializer = new JavaScriptSerializer(); var userData = serializer.Serialize(serializeModel); var authTicket = new FormsAuthenticationTicket( 1, usuario.Login, DateTime.Now, DateTime.Now.AddMinutes(30), false, userData); var encTicket = FormsAuthentication.Encrypt(authTicket); var faCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket); Response.Cookies.Add(faCookie); if (!string.IsNullOrEmpty(returnUrl)) { return Redirect(returnUrl); } return RedirectToAction("Index", "VisaoGeral"); } } catch (Exception exception) { ModelState.AddModelError("", exception); } } ModelState.AddModelError("", "E-mail e/ou senha inválido(s)"); return View(model); }
public ActionResult Index(AcessoModel model, string returnUrl) { if (!ModelState.IsValid) return View(model); if (!ValidateCaptcha()) return View(model); try { if (_servicoUsuario.ValidarUsuario(model.Email, model.Senha)) { var user = _servicoUsuario.ObterTodos(u => u.Email == model.Email).First(); if (!user.EhAdministrador && (user.UltimoAcesso.HasValue && Math.Abs(user.UltimoAcesso.Value.Subtract(DateTime.Now).Days) > 30)) { user.Bloqueado = true; _servicoUsuario.Atualizar(user); Erro("Este usuário foi bloqueado por inatividade", true); return View(model); } LimparDadosDoUsuario(); var serializeModel = new AppPrincipalSerializedModel { Id = user.Id, Name = user.Nome, Surname = user.Sobrenome, Email = user.Email, IsAdmin = user.EhAdministrador }; var serializer = new JavaScriptSerializer(); var userData = serializer.Serialize(serializeModel); var authTicket = new FormsAuthenticationTicket( 1, user.Email, DateTime.Now, DateTime.Now.AddMinutes(30), false, userData); var encTicket = FormsAuthentication.Encrypt(authTicket); var faCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket); Response.Cookies.Add(faCookie); if (!string.IsNullOrEmpty(returnUrl) && Url.IsLocalUrl(returnUrl)) { return Redirect(returnUrl); } return RedirectToAction("Index", "VisaoGeral"); } Erro(Exceptions.LoginOrPasswordInvalid, true); } catch (Exception exception) { Erro(exception.Message, true); } return View(model); }