2009-02-20 9 views
0

Je cherche à gérer l'autorisation dans une application MVC en utilisant un intercepteur Windsor II - parce que cela semble être la seule façon d'obtenir un accès nommé aux paramètres de l'action qui est pertinente pour déterminer si le l'utilisateur a accès.Accès à l'action via Windsor IInterceptor

De ma méthode d'interception, j'ai besoin d'accéder à l'action appelée. J'ai trouvé comment obtenir le nom du contrôleur et de l'action (via RequestContext), mais pas la méthode actuelle - de bonnes idées?

En tant que référence soit à peu près la façon dont le code se présente comme est:

public class AuthorizationInterceptor : IInterceptor 
{ 
    public void Intercept(IInvocation invocation) 
    { 
     if (invocation.Arguments != null && invocation.Arguments.Length > 0 && invocation.Arguments[0] != null) 
     { 
      if (invocation.Arguments[0].GetType() == typeof(RequestContext)) 
      { 
       var context = (RequestContext)invocation.Arguments[0]; 
       var values = context.RouteData.Values; 

       if (!auth.Authorize(values, HttpContext.Current.User)) 
       { 
        //RedirectToLogin     } 
      } 
     } 

     invocation.Proceed(); 
    } 
} 

Répondre

0

invocation.Method vous donne la méthode interceptées, mais je pense que vous feriez mieux d'utiliser un ActionFilter à la place.

Questions connexes