public ActionResult Login(UsuarioModel usuario)
        {
            if (ModelState.IsValid)
            {
                var servico = ModuleBuilder.CriarServicoAutenticacao();

                var usuarioAutentiado = servico.AutenticacarUsuario(usuario.Email, usuario.Senha);

                if (usuarioAutentiado != null)
                {
                    String[] permicoes = new String[2];

                    foreach (var permissao in usuarioAutentiado.Permissoes)
                    {
                        permicoes[permicoes.Count(t => t != null)] = permissao.Texto;
                    }

                    var logado = new UsuarioLogado(usuarioAutentiado.Email, permicoes);
                    FormsAuthentication.SetAuthCookie(logado.Email, true);
                    Session["USUARIO_LOGADO"] = logado;
                    return RedirectToAction("Index", "Home");
                }
            }

            ModelState.AddModelError("INVALID_LOGIN", "Usuário ou senha inválidos.");
            return View("Index", usuario);
        }
 public ActionResult Salvar(UsuarioModel usuario)
 {
     if (ModelState.IsValid)
     {
         if (!usuario.Senha.Equals(usuario.ConfirmarSenha))
         {
             TempData["SenhaInvalida"] = "As senhas são diferentes!";
             return View("CadastroUsuario", usuario);
         }
         IUsuarioRepositorio repositorio = new UsuarioRepositorio();
         IServicoCriptografia servico = new ServicoCriptografia();
         Usuario user = new Usuario()
         {
             NomeCompleto = usuario.NomeCompleto,
             Email = usuario.Email,
             Senha = servico.CriptografarSenha(usuario.Senha)
         };
         repositorio.Criar(user);
         TempData["Mensagem"] = "Usuario salvo com sucesso!";
         return RedirectToAction("Index", "Home");
     }
     else
     {
         TempData["Mensagem"] = "Não foi possivel cadastrar!";
     }
     return View("CadastroUsuario", usuario);
 }
        public ActionResult Logar(UsuarioModel model)
        {
            bool podeLogar = ModelState.IsValid;

            if (podeLogar)
            {
                var autenticacao = FabricaDeModulos.CriarServicoAutenticacao();
                Usuario usuarioAutenticado = autenticacao.AutenticarUsuario(model.Email, model.Senha);

                if (usuarioAutenticado != null)
                {
                    var logado = new Logado(usuarioAutenticado);
                    FormsAuthentication.SetAuthCookie(model.Email, true);
                    Session["USUARIO_LOGADO"] = logado;

                    return RedirectToAction("Index", "Home");
                }
            }

            ModelState.AddModelError("INVALID_LOGIN", "Usuário ou senha inválidos.");

            return View("Index", model);
        }