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()