Não estou conseguindo fazer com que o filtro funcione. Só compila se eu comentar a linha. //filters.Add(new AutorizacaoFilterAttribute());
Se eu descomentar ele a aplicação fica travada nesta url http://localhost:51270/Login
// Código do FilterConfig.cs é
using CaelumEstoque.Filtros;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace CaelumEstoque.App_Start
{
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new AutenticacaoFilterAttribute());
}
}
}
// Global.asax.cs
using CaelumEstoque.App_Start;
using CaelumEstoque.Filtros;
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
// Arquivo utilizado para configurações globais da aplicação.
namespace CaelumEstoque
{
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RouteConfig.RegisterRoutes(RouteTable.Routes);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
}
}
}
// AutorizacaoFilterAttribute.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
namespace CaelumEstoque.Filtros
{
public class AutenticacaoFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
object usuario = filterContext.HttpContext.Session["usuarioLogado"];
if (usuario == null)
{
filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(
new {
controller = "Login",
action = "Index"
}));
}
}
}
}
// Produto Controller simplesmente adicionei acima da classe.
[AutorizacaoFilter] // Anotação vale para todas as páginas.
public class ProdutoController : Controller