Código de exemplo nunca cairá na pagina de Login, pois mesma ela cai na regra do filtro.
Especificar um código como:
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var user = filterContext.HttpContext.Session[Constants.SessionNameLoggedUser];
if (user == null)
{
var controllerName = filterContext?.ActionDescriptor?.ControllerDescriptor?.ControllerName;
var actionName = filterContext?.ActionDescriptor?.ActionName;
string[] actionsPermitted = { "Index", "Autentica" };
if (controllerName == "Login" && actionsPermitted.Contains(actionName))
{
return;
}
filterContext.Result = new RedirectToRouteResult(
new System.Web.Routing.RouteValueDictionary(
new { action = "Index", controller = "Login" }
)
);
}
}