Przyjazny dla użytkownika błąd ASP.NET MVC 401
Zaimplementowałem obsługę błędów w witrynie ASP.NET MVCw pewien sposób sugeruje ten post.
Z błędami 404 wszystko działa dobrze. Ale jak poprawnie wyświetlić przyjazny dla użytkownika ekran dlaBłąd 401? Zwykle nie rzucają wyjątku, który można obsługiwać w środkuApplication_Error()
ale raczej akcja zwraca HttpUnauthorizedResult. Jednym z możliwych sposobów jest dodanie następującego kodu na koniecApplication_EndRequest()
metoda
if (Context.Response.StatusCode == 401)
{
throw new HttpException(401, "You are not authorised");
// or UserFriendlyErrorRedirect(new HttpException(401, "You are not authorised")), witout exception
}
Ale w środkuApplication_EndRequest()
Context.Session == null,errorController.Execute()
kończy się niepowodzeniem, ponieważ nie można użyć domyślnego obiektu 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.
Czy możesz zasugerować kilka dobrych praktyk dotyczących „przyjaznego dla użytkownika uchwytu” 401 w aplikacji ASP.NET MVC?
Dzięki.