ASP.NET MVC 5 Page d'Erreur Personnalisée

Je suis en utilisant une mesure d'autoriser l'attribut dans un ASP.NET MVC 5 application comme suit:

public class CustomAuthorizeAttribute : AuthorizeAttribute
{
    protected override void HandleUnauthorizedRequest(AuthorizationContext context)
    {
        if (context.HttpContext.Request.IsAuthenticated)
        {
            context.Result = new System.Web.Mvc.HttpStatusCodeResult((int)System.Net.HttpStatusCode.Forbidden);                
        }
        else
        {
            base.HandleUnauthorizedRequest(context);
        }
    }
}

Dans system.web section de mon site web.config je l'ai mentionné erreur de parcours:

<system.web>
    <customErrors mode="On" defaultRedirect="/Error/Error">
      <error statusCode="403" redirect="/Error/NoPermissions"/>
    </customErrors>
</system.web>

Mais jamais je ne suis redirigé vers ma page d'erreur personnalisée à /Error/NoPermissions. Au lieu de cela, le navigateur afficher le général page d'erreur disant "Erreur HTTP 403.0 - Interdit".

  • Vous avez le contrôleur nommé d'Erreur avec l'Action NoPermissions à l'intérieur?
  • Oui, certainement.
  • Modifier la config pour <customerrors defaultredirect="Erreur" mode="Sur"> <erreur de redirection="NoPermissions" statuscode="403"> </erreur></customerrors>
  • Il n'a pas de travail. Bien dans une application MVC 4, j'ai eu des configurations comme <customErrors mode="Sur" defaultRedirect="/Erreur/Erreur"> <erreur statusCode="403" redirect="/Erreur/UnauthorizedError" /> </customErrors>, et il a très bien fonctionné.
  • Eh bien, il n'y a pas beaucoup de différence entre la MVC 4 et MVC5 parler d'erreurs personnalisées. Il y a autre chose de mal là. Peut-être que votre contrôleur. Assurez-vous de ne pas avoir l'autorisation de l'attribut.
  • mon Erreur Contrôleur/Actions n'ont pas d'attributs sur eux.

InformationsquelleAutor Haider | 2014-05-09