/// <summary> /// No momento que é verificado o acesso á página /// verifica-se também se o usuário tem acesso ao formulário. /// </summary> /// <param name="filterContext"></param> protected override void OnAuthorization(AuthorizationContext filterContext) { base.OnAuthorization(filterContext); Models.Fachada.UsuarioFacade fachada = new Models.Fachada.UsuarioFacade(); Models.Dominio.Usuario usuario = new Models.Dominio.Usuario() { Login = HttpContext.User.Identity.Name }; string controle = HttpContext.Request.Url.Segments[1].Replace("/",""); string acao = (HttpContext.Request.Url.Segments.Count() > 2) ? HttpContext.Request.Url.Segments[2].Replace("/", "") : string.Empty; string tela = string.Format("/{0}/{1}", controle, acao); if (!fachada.VerificarAcesso(usuario, tela) && (controle != "ManterFoto" && acao != "Foto")) FormsAuthentication.RedirectToLoginPage(); else { IList<Models.Dominio.Permissao> permissoes = fachada.PesquisarUsuario(usuario).First().Perfil.ListaPermissoes; IList<Models.Dominio.Tela> menu = new List<Models.Dominio.Tela>(); foreach (Models.Dominio.Permissao permissao in permissoes) { if (permissao.Tela.Nome.Equals("/ManterArtigo/")) menu.Add(new Models.Dominio.Tela() { Nome = permissao.Tela.Nome }); else if (permissao.Tela.Nome.Equals("/ManterColuna/")) menu.Add(new Models.Dominio.Tela() { Nome = permissao.Tela.Nome }); else if (permissao.Tela.Nome.Equals("/ManterNoticia/")) menu.Add(new Models.Dominio.Tela() { Nome = permissao.Tela.Nome }); else if (permissao.Tela.Nome.Equals("/ManterAventura/")) menu.Add(new Models.Dominio.Tela() { Nome = permissao.Tela.Nome }); else if (permissao.Tela.Nome.Equals("/ManterFoto/")) menu.Add(new Models.Dominio.Tela() { Nome = permissao.Tela.Nome }); else if (permissao.Tela.Nome.Equals("/ManterUsuario/")) menu.Add(new Models.Dominio.Tela() { Nome = permissao.Tela.Nome }); else if (permissao.Tela.Nome.Equals("/ManterPerfil/")) menu.Add(new Models.Dominio.Tela() { Nome = permissao.Tela.Nome }); else if (permissao.Tela.Nome.Equals("/ManterLink/")) menu.Add(new Models.Dominio.Tela() { Nome = permissao.Tela.Nome }); else if (permissao.Tela.Nome.Equals("/ManterBanner/")) menu.Add(new Models.Dominio.Tela() { Nome = permissao.Tela.Nome }); else if (permissao.Tela.Nome.Equals("/ManterServico/")) menu.Add(new Models.Dominio.Tela() { Nome = permissao.Tela.Nome }); } ViewData["Menu"] = menu; } }
public ActionResult Autenticar(Models.Dominio.Usuario usuario, string returnUrl) { Models.Fachada.UsuarioFacade fachada = new Models.Fachada.UsuarioFacade(); // TODO: como mandar a mensagem de usuário e senha inválidos? if (fachada.AutenticarUsuario(usuario)) { FormsAuthentication.SetAuthCookie(usuario.Login, false); if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/") && !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\")) return Redirect(returnUrl); else return Redirect("/ManterUsuario"); } return View(usuario); }
public ActionResult Autenticar(Models.Dominio.Usuario usuario, string returnUrl) { Models.Fachada.UsuarioFacade fachada = new Models.Fachada.UsuarioFacade(); // TODO: como mandar a mensagem de usuário e senha inválidos? if (fachada.AutenticarUsuario(usuario)) { FormsAuthentication.SetAuthCookie(usuario.Login, false); if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/") && !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\")) { return(Redirect(returnUrl)); } else { return(Redirect("/ManterUsuario")); } } return(View(usuario)); }
/// <summary> /// No momento que é verificado o acesso á página /// verifica-se também se o usuário tem acesso ao formulário. /// </summary> /// <param name="filterContext"></param> protected override void OnAuthorization(AuthorizationContext filterContext) { base.OnAuthorization(filterContext); Models.Fachada.UsuarioFacade fachada = new Models.Fachada.UsuarioFacade(); Models.Dominio.Usuario usuario = new Models.Dominio.Usuario() { Login = HttpContext.User.Identity.Name }; string controle = HttpContext.Request.Url.Segments[1].Replace("/", ""); string acao = (HttpContext.Request.Url.Segments.Count() > 2) ? HttpContext.Request.Url.Segments[2].Replace("/", "") : string.Empty; string tela = string.Format("/{0}/{1}", controle, acao); if (!fachada.VerificarAcesso(usuario, tela) && (controle != "ManterFoto" && acao != "Foto")) { FormsAuthentication.RedirectToLoginPage(); } else { IList <Models.Dominio.Permissao> permissoes = fachada.PesquisarUsuario(usuario).First().Perfil.ListaPermissoes; IList <Models.Dominio.Tela> menu = new List <Models.Dominio.Tela>(); foreach (Models.Dominio.Permissao permissao in permissoes) { if (permissao.Tela.Nome.Equals("/ManterArtigo/")) { menu.Add(new Models.Dominio.Tela() { Nome = permissao.Tela.Nome }); } else if (permissao.Tela.Nome.Equals("/ManterColuna/")) { menu.Add(new Models.Dominio.Tela() { Nome = permissao.Tela.Nome }); } else if (permissao.Tela.Nome.Equals("/ManterNoticia/")) { menu.Add(new Models.Dominio.Tela() { Nome = permissao.Tela.Nome }); } else if (permissao.Tela.Nome.Equals("/ManterAventura/")) { menu.Add(new Models.Dominio.Tela() { Nome = permissao.Tela.Nome }); } else if (permissao.Tela.Nome.Equals("/ManterFoto/")) { menu.Add(new Models.Dominio.Tela() { Nome = permissao.Tela.Nome }); } else if (permissao.Tela.Nome.Equals("/ManterUsuario/")) { menu.Add(new Models.Dominio.Tela() { Nome = permissao.Tela.Nome }); } else if (permissao.Tela.Nome.Equals("/ManterPerfil/")) { menu.Add(new Models.Dominio.Tela() { Nome = permissao.Tela.Nome }); } else if (permissao.Tela.Nome.Equals("/ManterLink/")) { menu.Add(new Models.Dominio.Tela() { Nome = permissao.Tela.Nome }); } else if (permissao.Tela.Nome.Equals("/ManterBanner/")) { menu.Add(new Models.Dominio.Tela() { Nome = permissao.Tela.Nome }); } else if (permissao.Tela.Nome.Equals("/ManterServico/")) { menu.Add(new Models.Dominio.Tela() { Nome = permissao.Tela.Nome }); } } ViewData["Menu"] = menu; } }