public ActionResult Login(Users login, string returnUrl) { if (ModelState.IsValid) { using (UEFAEntities db = new UEFAEntities()) { var vLogin = db.Users.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.UserStatus.StatusDesc, "Active")) { /*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.UserPassword, login.UserPassword)) { FormsAuthentication.SetAuthCookie(vLogin.Email, false); if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/") && !returnUrl.StartsWith("//") && returnUrl.StartsWith("/\\")) { return(Redirect(returnUrl)); } /*armazenar o nome do usuário na Sssion*/ Session["Name"] = vLogin.FirstName; /*armazenar role do usuário*/ Session["Role"] = vLogin.RoleType.RoleName; /*LastName*/ Session["LastName"] = vLogin.LastName; /*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("", "Wrong Password!!!"); /*Retorna a tela de login*/ return(View(new Users())); } } /*Else responsável por verificar se o usuário está ativo*/ else { /*Escreve na tela a mensagem de erro informada*/ ModelState.AddModelError("", "Access Deined!!!"); /*Retorna a tela de login*/ return(View(new Users())); } } /*Else responsável por verificar se o usuário existe*/ else { /*Escreve na tela a mensagem de erro informada*/ ModelState.AddModelError("", "Wrong E-mail!!!"); /*Retorna a tela de login*/ return(View(new Users())); } } } /*Caso os campos não estejam de acordo com a solicitação retorna a tela de login com as mensagem dos campos*/ return(View(login)); }