public override void OnAuthorization(AuthorizationContext filterContext) { base.OnAuthorization(filterContext); if (!filterContext.HttpContext.User.Identity.IsAuthenticated) { filterContext.Result = new RedirectResult("~/Usuarios/Login"); return; } else { if (SessionContext.UsuarioLogado == null) { var cpf = filterContext.HttpContext.User.Identity.Name.ToString(); var usuario = new UsuariosBll().GetObject(cpf); var licencaBll = new UsuarioslicencasBll(); var licenca = new Usuarioslicencas(); licenca = licencaBll.GetObject(usuario); //if (usuario.Perfil.Nome.ToLower() == "desenvolvedor") //{ // licenca = new Usuarioslicencas() // { // Funcao = new Licencasfuncoes() { Nome = "Desenvolvedor" }, // Status = StatusUsuarioLicenca.Ativo, // Licencas = new Licencas() { Descricao = "Desenvolvedor" }, // Usuarios = usuario // }; //} //else //{ // licenca = licencaBll.GetObject(usuario); //} SessionContext.UsuarioLogado = licenca; } } if (filterContext.Result is HttpUnauthorizedResult) { filterContext.Result = new RedirectResult("~/Usuarios/Denied"); } }
public ActionResult Login(FormCollection collection) { try { UsuariosBll bll = new UsuariosBll(); Usuarios usuarioLogin = new Usuarios(); usuarioLogin.Persisted = true; //usuarioLogin.Email = collection["login"]; usuarioLogin.CPF = collection["cpf"]; usuarioLogin.Senha = collection["password"].Trim(); var usuario = bll.Login(usuarioLogin); var licencaBll = new UsuarioslicencasBll(); Usuarioslicencas licenca = null; if (usuario.Perfil.Nome.ToLower() == "Administrador") { //licenca = new Usuarioslicencas() //{ // Funcao = new Licencasfuncoes() { Nome = "Desenvolvedor" }, // Status = StatusUsuarioLicenca.Ativo, // Licencas = new Licencas() { Descricao = "Desenvolvedor" }, // Usuarios = usuario //}; licenca = licencaBll.GetObject(usuario); } else { licenca = licencaBll.GetObject(usuario); if (licenca == null) { throw new Exception("Atenção! Seu usuário não possui uma licença valida."); } else { if (licenca.Status != StatusUsuarioLicenca.Ativo) { throw new Exception("Atenção! Sua licença não está ativa."); } } } SessionContext.UsuarioLogado = licenca; FormsAuthentication.SetAuthCookie(usuario.CPF, false); if (SessionContext.UsuarioLogado.Usuarios.Perfil.IdPerfil == 1) { return(RedirectToAction("Index", "Home")); } else { return(RedirectToAction("Index", "Home")); } return(RedirectToAction("Index", "Home")); } catch (Exception ex) { Danger("Erro", ex.Message, true); return(View()); } }