Use this in your case:
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary
{
{"action", "Index"},
{"controller", "Error"},
{"id", "403"},
});
}
You have to take into account that your route has to be placed in appropriate place - before the more general routes, for example:
routes.MapRoute(
name: "HttpError",
routes.MapRoute(
name: "Default",
If you reverse the order, MVC will fetch the first route that fits, and redirects you for example to /Error/Index/403
instead of /Error/403
.