基于角色的身份验证使用操作名

时间:2017-09-12 06:34:48

标签: c# asp.net-mvc authentication role-base-authorization

我正在使用Entity Framework开展C# MVC项目。我正在尝试获得基于角色的身份验证。

我有三个表RolesPermissionFunctionPermission

角色:

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

权限函数

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

这些只是样本数据。

我需要在登录时检查用户的角色,并根据该角色仅允许访问允许的页面。

我有一个管理员可以更改权限详细信息的视图。

enter image description here

权限函数表中的functionname只是一些字符串,我需要使用它来提供或停止访问相应的操作。

我搜索并发现什么,我是这类新手的新手,请建议我更好的方法来实现这一目标。

提前致谢。

1 个答案:

答案 0 :(得分:0)

 public override void OnActionExecuting(ActionExecutingContext filterContext)

您可以覆盖Action执行并检查此方法的权限(例如:使用用户凭据)。基于Pemission,您可以从此方法返回标志,如true或false。

  

MORE INFORMATION