Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida no Ex. 4 da Aula 11 - Filtro para autorização de usuários

Criei o a minha classe tudo certinho conforme mostra no exemplo mas na hora em que eu vou executar ele cai na pagina inicial perfeitamente, mas na hora que eu vou logar o meu produtos sem o login ao inves de ele mi redirecionar para a pagina de login ele diz que o redirecionamento está incorreto dizendo que o pro pode ser causado pela desativação ou recusa de aceitar o cookies, estou postando junto a minha classe produtos controler e AutorizacaoFilterAttribute

produto controler

[AutorizacaoFilter]
    public class ProdutoController : Controller
    {
        // GET: Produto
        [Route("Produtos", Name = "ListaProdutos")]
        public ActionResult Index()
        {
            ProdutosDAO produtosdao = new ProdutosDAO();
            IList<Produto> produtos = produtosdao.Lista();
            return View(produtos);

        }
        public ActionResult Form()
        {
            CategoriasDAO categoriasDAO = new CategoriasDAO();
            IList<CategoriaDoProduto> categorias = categoriasDAO.Lista();
            ViewBag.Categorias = categorias;
            ViewBag.Produto = new Produto();
            return View();
        }
        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Adiciona(Produto produto)
        {
            int idDaInformatica = 1;
            if (produto.CategoriaId.Equals(idDaInformatica) && produto.Preco <=100)
            {
                ModelState.AddModelError("produto.Invalido","produto abaixo de 100 reais ");

            }
            if (ModelState.IsValid)
            {
                ProdutosDAO dao = new ProdutosDAO();
                dao.Adiciona(produto);
                return RedirectToAction("Index","Produto");

            }
            else
            {
                ViewBag.Produto = produto;
                CategoriasDAO categoriaDAO = new CategoriasDAO();
                ViewBag.categorias = categoriaDAO.Lista();
                return View("Form");
            }
        }
        [Route("produtos/{id}", Name="Visualizaproduto")]
        public ActionResult Visualiza(int Id)
        {
            ProdutosDAO produtoDAO = new ProdutosDAO();
            Produto produto = produtoDAO.BuscaPorId(Id);
            ViewBag.Produto = produto;
            return View();
        }
        public ActionResult DecrementaQtd(int id)
        {
            ProdutosDAO dao = new ProdutosDAO();
            Produto produto = dao.BuscaPorId(id);
            produto.Quantidade--;
            dao.Atualiza(produto);
            return Json(produto);

        }

AutorizacaoFilterAttribute

public class AutorizacaoFilterAttribute : ActionFilterAttribute
    {
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            object usuario = filterContext.HttpContext.Session["usuarioLogado"];
            if (usuario == null)
            {
                filterContext.Result = new RedirectToRouteResult(
                    new RouteValueDictionary(
                        new { controler = "Login", action = "Index"}
                   )
               );                
            }
        }
    }
1 resposta
solução!

Olá Douglas! Beleza?

Dentro do filtro, no método OnActionExecuting, quando você vai passar o controller e action para o RouteValueDictionary, você escreveu "controler" com um L só:

new RouteValueDictionary(
                        new { controler = "Login", action = "Index"}
                   )

Tem que ser com dois. Mude isso e veja se resolve :)