Error 401 amigable para el usuario de ASP.NET MVC

He implementado manejo de errores en el sitio MVC de ASP.NETde una manera como sugiere este post.

Con 404 errores todo funciona bien. Pero, ¿cómo mostrar correctamente la pantalla fácil de usar para unaError 401? Usualmente no lanzan Excepciones que pueden ser manejadas dentro.Application_Error() pero más bien la acción devuelve HttpUnauthorizedResult. Una forma posible es agregar el siguiente código al 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
}

Pero por dentroApplication_EndRequest() Context.Session == null,errorController.Execute() falla porque no puede usar TempDataProvider predeterminado.

  // 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.

Entonces, ¿puede sugerir algunas prácticas recomendadas sobre cómo 'manejar fácilmente' 401 en la aplicación MVC de ASP.NET?

Gracias.

Respuestas a la pregunta(4)

Su respuesta a la pregunta