Cómo hacer que el atributo Autorizar devuelva una página de error 403 personalizada en lugar de redirigir a la página de Inicio de sesión

[Authorize] El atributo es una invención de MS agradable y práctica, y espero que pueda resolver los problemas que tengo ahora

Para ser más especifico:

Cuando el cliente actual no está autenticado:[Authorize] redirige desde la acción segura a la página de inicio de sesión y después de que el inicio de sesión haya sido exitoso - trae de vuelta al usuario, esto es bueno.

Pero cuando el cliente actual ya está autenticado pero no está autorizado para ejecutar una acción específica, todo lo que necesito es mostrar mi página 403 general.

¿Es posible sin mover la lógica de autorización dentro del cuerpo del controlador?

Actualizar: El comportamiento que necesito debe ser semánticamente igual a este boceto:

public ActionResult DoWork()
{
    if (!NotAuthorized())
    {
        // this should be not redirect, but forwarding 
        return RedirectToAction("403");         
    }

    return View();
}

por lo tanto, no debe haber ningún redireccionamiento y la URL debe permanecer igual, pero el contenido de la página debe reemplazarse por 403 páginas

Actualización 2: Implementé el boceto de esta manera:

[HandleError]
public class HomeController : Controller
{
    public ActionResult Index()
    {
        ViewData["Message"] = "Welcome to ASP.NET MVC!";

        return View();
    }

    [CustomActionFilter]
    public ActionResult About()
    {
        return View();
    }

    public ActionResult Error_403()
    {
        return Content("403");
    }
}

public class CustomActionFilter : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        filterContext.Result = new ContentResult { Content = "403" };
    }
}

Y no puedo entender cómo reenviar correctamente la ejecución a HomeController.Action_403 () para que muestre 403.

Actualización 3:

filterContext.Result = new ViewResult() { ViewName = "Error_403" };

así que esta es una respuesta sobre cómo representar una plantilla de vista específica ... pero aún no tengo idea de cómo ejecutar otro controlador; de todos modos, es una buena solución.

Respuestas a la pregunta(2)

Su respuesta a la pregunta