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.

questionAnswers(4)

yourAnswerToTheQuestion