... it's unreliable how any type of result can perform a redirect (indeed, I have two custom ones that do)
If they are redirecting, this must be done by setting the Result to RedirectResult or similar, not just Response.Redirect.
If this is Response.Redirect, then this is simply wrong.
Example: AuthorizeAttribute, which changes the result to HttpUnauthorizedResult.
That way, you still get ControllerContext.Result and you can work with it.
Also, what about applying the convention: if the type name ActionResult contains the word "redirection" than redirection.
var isRedirect = filterContext.ActionResult.GetType().Name.Contains("Redirect");
, , , , .
, , .