ASP.NET MVC удобная ошибка 401

Я реализовал обработку ошибок на сайте ASP.NET MVCтаким образом, как предполагает этот пост.

С 404 ошибками все работает нормально. Но как правильно показать удобный экран дляОшибка 401? Они обычно не выдают исключение, которое может быть обработано внутриApplication_Error() скорее действие возвращает HttpUnauthorizedResult. Один из возможных способов - добавить следующий код в конецApplication_EndRequest() метод

if (Context.Response.StatusCode == 401)
{
    throw new HttpException(401, "You are not authorised");
    // or UserFriendlyErrorRedirect(new HttpException(401, "You are not authorised")), witout exception
}

Но внутриApplication_EndRequest() Context.Session == null,errorController.Execute() терпит неудачу, потому что он не может использовать TempDataProvider по умолчанию.

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

Итак, можете ли вы предложить несколько лучших советов о том, как «удобно обрабатывать» 401 в приложении ASP.NET MVC?

Благодарю.

Ответы на вопрос(4)

Ваш ответ на вопрос