2014-07-13 2 views
0

J'utilise MVC 4.override client ActionFilterAttribute OnActionExecuting jamais appelé

I Code cet attribut client qui hérite de System.Web.Mvc.ActionFilterAttribute

public class AuthorizedAttribute : ActionFilterAttribute 
{  
    public AccessLevel Threshold { get; set; } 

    public AuthorizedAttribute() 
    { 
     Threshold = AccessLevel.Anonymous; 
    } 

    public AuthorizedAttribute(AccessLevel threshold) 
    { 
     Threshold = threshold; 
    } 

    public override void OnActionExecuting(ActionExecutingContext filterContext) 
    { 
     //some actions 
     base.OnActionExecuting(filterContext); 
    } 
} 

Et je l'utilise sur l'action Manage dans mon UserController

public class UserController : Controller 
{ 
    [HttpGet] 
    [Authorized(AccessLevel.Administrator)] 
    public ViewResult Manage() 
    { 
     return View(); 
    } 
} 

J'ai mis un point d'arrêt dans mon attribut constructeur, dans la méthode prioritaire OnActionExecuting et dans mon UserController et quand j'appelle l'url d'action à travers mon navigateur en mode de débogage seulement mon point de rupture de contrôleur tire et je atterris sur la page même si je ne suis pas authentifié .. Qu'est-ce que je fais mal?

Merci d'avance.

Répondre

0

Il semble que je n'étais pas complètement dans MVC 4, mais presque dans MVC 5. J'ai juste besoin de faire une petite mise à jour sur mon web.config pour résoudre mon problème .. J'ai trouvé mon salut here

0

Votre code devrait fonctionner. Probablement vous avez des problèmes dans le routage ou etc.

+0

pas mon routage est bon, mon point d'arrêt dans mes méthodes de commande est mise à feu, mais pas ceux de mon attribut .. – MrGrabazu

+0

dans ce cas, je peux le comprendre que si je prends un coup d'oeil sur cette fonctionnalité sur le projet. –

+0

Quelles autres informations avez-vous besoin de savoir si c'est OK ou non? – MrGrabazu

Questions connexes