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?
Благодарю.