//[Authorize(Roles = "ADMTI,ADMGARTI,ADMGPCO")] public ActionResult Login(TB_Acesso login, string returnUrl) { if (ModelState.IsValid) { using (DEV_PESQUISA_SATISFACAOEntities db = new DEV_PESQUISA_SATISFACAOEntities()) { var vLogin = db.TB_Acesso.Where(p => p.Chave.Equals(login.Chave)).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.Chave, 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; /*código abaixo cria uma session para armazenar o Perfil*/ Session["Perfil"] = vLogin.PerfilId; /*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 TB_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 TB_Acesso())); } } /*Else responsável por verificar se o usuário existe*/ else { /*Escreve na tela a mensagem de erro informada*/ ModelState.AddModelError("", "Chave informada inválida!"); /*Retorna a tela de login*/ return(View(new TB_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)); }