Erro 401 amigável do ASP.NET MVC
Eu tenho implementado o tratamento de erros no site ASP.NET MVCde uma forma como sugere este post.
Com 404 erros, tudo funciona bem. Mas como mostrar corretamente a tela amigável para umErro 401? Eles geralmente não jogam exceção que pode ser tratada dentroApplication_Error()
mas, em vez disso, a ação retorna HttpUnauthorizedResult. Uma maneira possível é adicionar o seguinte código ao final deApplication_EndRequest()
método
if (Context.Response.StatusCode == 401)
{
throw new HttpException(401, "You are not authorised");
// or UserFriendlyErrorRedirect(new HttpException(401, "You are not authorised")), witout exception
}
Mas por dentroApplication_EndRequest()
Context.Session == null,errorController.Execute()
falha porque não pode usar TempDataProvider padrão.
// Call target Controller and pass the routeData.
IController errorController = new ErrorController();
errorController.Execute(new RequestContext(
new HttpContextWrapper(Context), routeData)); // Additional information: The SessionStateTempDataProvider requires SessionState to be enabled.
Então, você pode sugerir algumas práticas recomendadas como 'user friendly handle' 401 no aplicativo ASP.NET MVC?
Obrigado.