Пример #1
0
        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);
        }
Пример #2
0
        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);
        }