示例#1
0
        public async Task TestIndexComFormularioSemChaves()
        {
            FormCollection       form      = new FormCollection();
            AcessoIndexViewModel resultado = (await controller.Index(form) as ViewResult).Model as AcessoIndexViewModel;

            Assert.AreEqual(true, resultado.Erro);
        }
示例#2
0
        public async Task TestIndexComValoresEspaco()
        {
            FormCollection form = new FormCollection();

            form["txtMatricula"] = " ";
            form["txtSenha"]     = " ";
            AcessoIndexViewModel resultado = (await controller.Index(form) as ViewResult).Model as AcessoIndexViewModel;

            Assert.AreEqual(true, resultado.Erro);
        }
示例#3
0
        public async Task <ActionResult> Index(FormCollection formCollection)
        {
            if (Sistema.Autenticado(Sessao.UsuarioMatricula))
            {
                return(RedirectToAction("Index", "Principal"));
            }

            bool validado = false;

            if (formCollection.HasKeys())
            {
                if (!StringExt.IsNullOrWhiteSpace(formCollection["txtMatricula"], formCollection["txtSenha"]))
                {
                    string matricula = formCollection["txtMatricula"].ToString();
                    string senha     = formCollection["txtSenha"].ToString();

                    Usuario usuario = Usuario.Autenticar(matricula, senha);

                    if (usuario != null)
                    {
                        validado = true;

                        Hubs.LembreteHub.Iniciar(usuario.Matricula);

                        Sessao.Inserir("UsuarioMatricula", usuario.Matricula);
                        Sessao.Inserir("UsuarioNome", usuario.PessoaFisica.Nome);
                        Sessao.Inserir("UsuarioCategoriaCodigo", usuario.CodCategoria);
                        Sessao.Inserir("UsuarioCategoria", usuario.Categoria.Descricao);

                        //Verificando se a senha do usuário é padrão de visitante
                        if (usuario.CodCategoria == Categoria.VISITANTE && senha == Sistema.GerarSenhaPadrao(usuario))
                        {
                            Sessao.Inserir("UsuarioSenhaPadrao", true);
                        }

                        Usuario.RegistrarAcesso(usuario.Matricula);
                        Sistema.RegistrarCookie(usuario.Matricula);
                    }
                }
            }

            if (validado)
            {
                Response.Cookies.Add(new System.Web.HttpCookie("SIAC_Login")
                {
                    Expires = DateTime.Now.AddMinutes(30),
                    Value   = Criptografia.Base64Encode(Sessao.UsuarioMatricula)
                });
                Lembrete.AdicionarNotificacao("Seu usuário foi autenticado com sucesso.", Lembrete.POSITIVO);
                if (Request.QueryString["continuar"] != null)
                {
                    return(Redirect(Request.QueryString["continuar"].ToString()));
                }
                return(RedirectToAction("Index", "Principal"));
            }
            else
            {
                var model = new AcessoIndexViewModel();
                model.Matricula = formCollection.HasKeys() ? formCollection["txtMatricula"] : "";
                model.Erro      = true;
                if (!String.IsNullOrWhiteSpace(model.Matricula) && Sistema.UsuarioAtivo.Keys.Contains(model.Matricula))
                {
                    model.Mensagens = new string[] { "Seu usuário já está conectado." };
                }
                return(View(model));
            }
        }