HttpStatusCodeResult (401) retorna “302 encontrado”

Usando a ASP.NET MVC 5, eu gostaria de retornar o código de status HTTP apropriado para diferentes cenários (401 para o usuário não é autenticado, 403 quando o usuário não tem direito para algum recurso, etc.), do que lidar com eles em jQuery.

Mas o problema é que, quando tento retornar 401, ele sempre retorna "302: Found". Qual é o truque para um código de status personalizado e por que isso não funciona?

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

   // ... other code ...
}

EDIT 1: bit interessante:

Se eu substituir o 401 por um 404 assim:

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

Então, de fato, dá um 404 e jQuery pode pegar o problema. No entanto, não é uma solução elegante, pois o código de erro é diferente.

EDIT 2: 302 não é bom para mim, como o resultado seria usado emjQuery.get().fail(), mas 302 não vaifail()

questionAnswers(1)

yourAnswerToTheQuestion