ASP.NET MVC benutzerfreundliche 401 Fehler

Ich habe Fehlerbehandlung in ASP.NET MVC-Site implementiertIn gewisser Weise schlägt dieser Beitrag vor.

Mit 404 Fehlern funktioniert alles einwandfrei. Aber wie richtig zeigen benutzerfreundliche Bildschirm für ein401 Fehler? Sie werfen normalerweise keine Ausnahme, die im Inneren behandelt werden kannApplication_Error() Stattdessen gibt action HttpUnauthorizedResult zurück. Eine Möglichkeit besteht darin, den folgenden Code am Ende von hinzuzufügenApplication_EndRequest() Methode

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

Aber drinnenApplication_EndRequest() Context.Session == null,errorController.Execute() schlägt fehl, da der Standard-TempDataProvider nicht verwendet werden kann.

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

Können Sie also einige bewährte Methoden für die benutzerfreundliche Handhabung von 401 in ASP.NET MVC-Anwendungen vorschlagen?

Vielen Dank.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage