Zaimplementowałem obsługę błędów w witrynie ASP.NET MVC in a way like suggests this post.Przyjazny dla użytkownika ASP.NET MVC błąd 401
Przy 404 błędach wszystko działa dobrze. Ale jak poprawnie wyświetlać przyjazny dla użytkownika ekran dla 401 error? Zwykle nie rzucają wyjątku, który można obsłużyć wewnątrz Application_Error()
, ale raczej akcja zwraca HttpUnauthorizedResult. Jednym z możliwych sposobów jest dodanie następującego kodu do końca Application_EndRequest()
metody
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 wewnątrz Application_EndRequest()
Context.Session == null, errorController.Execute()
nie dlatego, że nie można użyć domyślnego 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żna zaproponować najlepsze praktyki dotyczące "obsługi przyjaznej dla użytkownika" 401 w aplikacji ASP.NET MVC?
Dzięki.
http://stackoverflow.com/questions/2580596/how-do-you-handle-ajax-requests -when-user-is-not-authenticated/2595436 # 2595436 – Cherian