Ejemplo n.º 1
0
        public ActionResult Login(UsuarioViewModelLogin model)
        {
            // Verifica se os dados do model estão de acordo com as regras do UsuarioViewModelLogin
            if (ModelState.IsValid)
            {
                try
                {
                    UsuarioDal uDal    = new UsuarioDal();
                    Usuario    usuario = uDal.FindByLoginSenha(model.Login, Criptografia.EncryptMD5(model.Senha));

                    if (usuario != null) //usuario foi encontrado?
                    {
                        // Transferir os dados do usuario para a classe de modelo..
                        UsuarioAutenticado auth = new UsuarioAutenticado();
                        auth.IdUsuario = usuario.IdUsuario;
                        auth.Nome      = usuario.Nome;
                        auth.Login     = usuario.Login;
                        auth.Perfil    = usuario.Perfil.Nome;

                        // Criar o ticket de acesso
                        FormsAuthenticationTicket ticket =
                            new FormsAuthenticationTicket(JsonConvert.SerializeObject(auth), false, 5);

                        // Gravar o ticket em cookie
                        HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName,
                                                           FormsAuthentication.Encrypt(ticket));
                        // Gravar o cookie
                        Response.Cookies.Add(cookie);

                        // Redirecionar para a área restrita
                        return(RedirectToAction("Index", "Home"));
                    }
                    else
                    {
                        TempData["Falha"] = "Acesso Negado. Tente novamente";
                    }
                    //ViewBag.Mensagem = "Acesso Negado.Tente novamente";
                }
                catch (Exception e)
                {
                    TempData["Falha"] = e.Message;
                }
            }
            return(View());
        }