In your attribute you can use:
filterContext.Result = new RedirectToRouteResult("BackRoute",
new RouteValueDictionary(
new { action = "Index", controller = "Home" });
UPDATE: Infinite loop means that you are redirecting to action called in first place. Try to add one more check before setting RedirectToRouteResult:
if(logic && filterContext.RouteData.Route != RouteTable.Routes["BackRoute"])
{
filterContext.Result = new RedirectToRouteResult("BackRoute",
new RouteValueDictionary(new {
controller = rvd["controller"].ToString()
, action = rvd["action"].ToString() }));
}