2010-12-19 5 views
0

J'ai un contrôleur appelé "SomeController". Je veux vérifier si l'utilisateur est connecté ou s'il a des persévérations pour exécuter une action dans ce contrôleur. Pour ce faire, je l'ai lu cet article http://blog.wekeroad.com/blog/aspnet-mvc-securing-your-controller-actions/ et j'ai écrit ma propre classe (un test):ASP.NET MVC 2 Un problème avec la méthode OnActionExecuting

public class BaseFilter : ActionFilterAttribute 
{ 
    public override void OnActionExecuting(ActionExecutingContext filterContext) 
    { 
     if (!filterContext.HttpContext.User.Identity.IsAuthenticated) 
     { 
      FormsAuthentication.RedirectToLoginPage(); 
     } 
     //here will be checking the user permissions if he's logged in 
    } 
} 

[BaseFilter] 
public class SomeController : BaseController 
{ 
... 
} 

mais comme vous pouvez le comprendre rend une boucle de infinitif quand je veux exécuter toute action de ce contrôleur. Alors, comment faire face à cela?

Répondre

1

Vous pouvez appliquer le filtre d'action sur les méthodes appropriées plutôt que sur le niveau de la classe.

Personnellement, je nommerais cela quelque chose comme Authorize, puis l'appliquer aux méthodes de contrôleur qui nécessitent une autorisation.

[Authorize] 
public ActionResult Index() 
{ 
// Do stuff 
} 
Questions connexes