/// <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;
            }
        }