2009-08-31 10 views
19

Je suis intéressé à savoir quelles sont les meilleures pratiques pour utiliser la sécurité basée sur les rôles dans MVC:
comment sécuriser vos actions et les rendre accessibles par des rôles spécifiques seulement?Sécurité basée sur les rôles asp.net mvc

Répondre

23

Si vous configurez correctement votre fournisseur d'appartenance ASP.Net, vous pouvez facilement utiliser l'attribut [Autoriser] pour spécifier l'accès à différents rôles ou utilisateurs.

Pour obliger les utilisateurs à se connecter, utilisez:

[Authorize] 
public class SomeController : Controller 

// Or 
[Authorize] 
public ActionResult SomeAction() 

Pour restreindre l'accès à des rôles spécifiques, utilisez:

[Authorize(Roles = "Admin, User")] 
public class SomeController : Controller 

// Or 
[Authorize(Roles = "Admin, User")] 
public ActionResult SomeAction() 

Et pour restreindre l'accès des utilisateurs spécifiques, utilisez:

[Authorize(Users = "Charles, Linus")] 
public class SomeController : Controller 

// Or 
[Authorize(Users = "Charles, Linus")] 
public ActionResult SomeAction() 
+1

Et si vous souhaitez que vos rôles/permissions soient dynamiques dans la base de données? –

+0

@JoePhilllips Créez un attribut personnalisé et un gestionnaire onAuthorize. – nagytech

+0

J'aime la méthode Authorize. Voici une question de suivi: si un groupe de répertoires actif est créé pour gérer les exceptions à la règle, p. Ex. un groupe nommé "MyApp_AccessDenied" .. existe-t-il un moyen d'utiliser cela ... c'est-à-dire une version négative de la décoration Authorize ... comme une décoration DenyAuthorize? – Bkwdesign

Questions connexes