2017-09-12 4 views
0

Je travaille sur un projet C# MVC avec Entity Framework. J'essaie d'obtenir l'authentification basée sur le rôle. J'ai trois tables comme Roles, PermissionFunction et Permission.Authentification basée sur les rôles utilisant le nom d'action

Rôles:

roleId | rolename 
------------------- 
1  | admin  
2  | super admin 
3  | user 

Permission Fonction

pfId | functionname 
------------------------- 
1 | usercreate   
2 | useredit  
3 | userdelete   
4 | userview    
5 | productcreate   
6 | productedit  
7 | productdelete   
8 | productview 

permision

permisionId | roleid| pfid 
------------------------- 
1   | 1  | 1 
2   | 1  | 2 
3   | 1  | 3 
4   | 1  | 4 
5   | 3  | 5 
6   | 3  | 6 

Ce sont là seulement sampl Les données

J'ai besoin de vérifier le rôle de l'utilisateur lors de sa connexion et selon celui qui donne accès uniquement aux pages permises.

J'ai une vue d'où admin peut changer les détails de la permission.

enter image description here

Le functionname dans le tableau de la fonction d'autorisation est juste une chaîne, et je dois l'utiliser pour donner ou arrêter l'accès à l'action correspondante.

J'ai cherché et trouvé rien, je suis nouveau à ce genre de choses, s'il vous plaît me suggérer une meilleure façon d'y parvenir.

Merci d'avance.

+0

Regardez INNER JOIN déclaration – apomene

Répondre

1
public override void OnActionExecuting(ActionExecutingContext filterContext) 

Vous pouvez remplacer l'action executeing et vérifiez la permision sur cette méthode (par exemple: avec des informations d'identification de l'utilisateur) .Basée sur pemission vous pouvez retourner le drapeau de cette méthode comme vrai ou faux.

MORE INFORMATION