Пример #1
0
        public ActionResult Login(Acesso login, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                using (CervejariaEntities db = new CervejariaEntities())
                {
                    var vLogin = db.Acesso.Where(p => p.EMAIL.Equals(login.EMAIL)).FirstOrDefault();

                    /*Verificar se a variavel vLogin está vazia.
                     * Isso pode ocorrer caso o usuário não existe.
                     * Caso não exista ele vai cair na condição else.*/
                    if (vLogin != null)
                    {
                        /*Código abaixo verifica se o usuário que retornou na variavel tem está
                         * ativo. Caso não esteja cai direto no else*/
                        if (Equals(vLogin.ATIVO, "S"))
                        {
                            /*Código abaixo verifica se a senha digitada no site é igual a
                             * senha que está sendo retornada
                             * do banco. Caso não cai direto no else*/
                            if (Equals(vLogin.SENHA, login.SENHA))
                            {
                                FormsAuthentication.SetAuthCookie(vLogin.EMAIL, false);
                                if (Url.IsLocalUrl(returnUrl) &&
                                    returnUrl.Length > 1 &&
                                    returnUrl.StartsWith("/") &&
                                    !returnUrl.StartsWith("//") &&
                                    returnUrl.StartsWith("/\\"))
                                {
                                    return(Redirect(returnUrl));
                                }
                                /*código abaixo cria uma session para armazenar o nome do usuário*/
                                Session["Nome"] = vLogin.NOME;
                                /*código abaixo cria uma session para armazenar o sobrenome do usuário*/
                                Session["Sobrenome"] = vLogin.SOBRENOME;
                                //Isso aqui serve para salvar o PERFIL do usuário em uma váriavel de sessão
                                Session["Perfil"] = vLogin.PERFIL;
                                /*retorna para a tela inicial do Home*/
                                return(RedirectToAction("Index", "Home"));
                            }
                            /*Else responsável da validação da senha*/
                            else
                            {
                                /*Escreve na tela a mensagem de erro informada*/
                                ModelState.AddModelError("", "Senha informada Inválida!!!");
                                /*Retorna a tela de login*/
                                return(View(new Acesso()));
                            }
                        }
                        /*Else responsável por verificar se o usuário está ativo*/
                        else
                        {
                            /*Escreve na tela a mensagem de erro informada*/
                            ModelState.AddModelError("", "Usuário sem Acesso para usar o sistema!!!");
                            /*Retorna a tela de login*/
                            return(View(new Acesso()));
                        }
                    }
                    /*Else responsável por verificar se o usuário existe*/
                    else
                    {
                        /*Escreve na tela a mensagem de erro informada*/
                        ModelState.AddModelError("", "E-mail informado inválido!!!");
                        /*Retorna a tela de login*/
                        return(View(new Acesso()));
                    }
                }
            }

            /*Caso os campos não esteja de acordo com a solicitação retorna a tela de login
             * com as mensagem dos campos*/
            return(View(login));
        }