2012-06-21 5 views
0

Existe-t-il un moyen intégré dans asp.net mvc 3, pour permettre l'authentification et les actions en fonction du moment de la journée? Par exemple, s'il est 18h00, les utilisateurs appartenant à un rôle spécifique ne sont pas autorisés à se connecter ou s'ils sont déjà authentifiés, ils seront automatiquement déconnectés ou ne pourront pas effectuer d'actions. Je suppose que dans la méthode de connexion, je pourrais vérifier le rôle de l'utilisateur et l'heure, puis sur chaque action, je vérifierai également le rôle et l'heure de la journée, mais est-il plus facile?Authentification basée sur le temps et actions dans asp.net mvc

MISE À JOUR: Je suppose qu'il n'y a pas de moyen plus simple de régler simplement l'heure et l'utilisateur/les rôles, donc j'ai fini par implémenter la réponse (solution).

Répondre

0

Vous pouvez écrire une coutume Authorize attribut et remplacer la méthode AuthorizeCore dans laquelle vous souhaitez effectuer la vérification nécessaire:

public class MyAuthorizeAttribute : AuthorizeAttribute 
{ 
    protected override bool AuthorizeCore(HttpContextBase httpContext) 
    { 
     var authorized = base.AuthorizeCore(httpContext); 
     if (!authorized) 
     { 
      return false; 
     } 

     // At this stage standard authorization passed => 
     // you could now check the user roles in the database 
     // and the time of the day and return true or false from here 

     ... 
    } 
} 

et maintenant tout ce qui reste est décorer vos contrôleurs/actions avec cet attribut personnalisé.

Questions connexes