HttpStatusCodeResult (401) devuelve "302 Found"

Usando ASP.NET MVC 5, me gustaría devolver el código de estado HTTP apropiado para diferentes escenarios (401 para el usuario no está autenticado, 403 cuando el usuario no tiene derecho para algún recurso, etc.), que los maneja en jQuery.

Pero el problema es que cuando intento devolver 401, siempre devuelve "302: Encontrado". ¿Cuál es el truco para un código de estado personalizado y por qué esto no funciona?

public ActionResult My()
{
    if (User.Identity.IsAuthenticated == false)
    {
        return new HttpStatusCodeResult(401, "User is not authenticated."); 
            // Returns "302: Found"
    }

   // ... other code ...
}

EDITAR 1: poco interesante:

Si reemplazo el 401 con un 404 como este:

return new HttpNotFoundResult("User is not authenticated.");

Entonces de hecho da un 404 y jQuery puede atrapar el problema. Sin embargo, no es una solución elegante ya que el código de error es diferente.

EDIT 2: 302 no es bueno para mí, ya que el resultado se usaría enjQuery.get().fail(), pero el 302 no lo haráfail()

Respuestas a la pregunta(1)

Su respuesta a la pregunta