我是MVC的新手,但我在C#Winforms,数据库设计和规范化方面有很好的经验。 我想使用MVC动态定义用户及其角色。
有一个组织负责部门(HOD)。 有几个分支机构,每个办事处都有一名在HOD下工作的分部主管。 每个分支机构官员都有权为其员工分配不同的可访问性。 对于Eg:出纳员也可以访问生成账单。
请指导我,如何实施此多模式和动态角色管理模型?
我搜索了很多,但找不到任何可以帮助我的东西。 BTW该项目是员工管理系统,包括工资单,休假管理,员工服务手册等。 提前谢谢。
答案 0 :(得分:1)
仅仅是为了不作为100%解决方案的指导。
如果您使用的是MVC 5,则可以使用ASP.NET Identity Core
有两种基于角色和声明的常见授权方法。
这是基于角色的身份验证。因此,基本上您可以根据需要创建角色,然后将这些角色分配给用户。因此,用户立即获得为该角色定义的所有访问权限。
在您的数据库中:
您将在 AspNetUsers 表
中有一个用户列表AspNetRoles 表中的角色列表 - >管理员,分公司经理,经理等
然后最后用[授权(角色=“管理员等”)]装饰你的控制器或动作
[Authorize(Roles = "Admin")]
public ActionResult TestMethod()
{
ViewBag.Message = "This View is designed for the Admin's";
return View();
}
或整个控制器
[Authorize(Roles = "Admin")]
public class TestController
{
}
因此,一旦这些措施到位,您将创建一个操作,管理员可以将角色分配给其他人。分支机构官员可以为员工分配角色。
有用的链接:http://www.dotnetcurry.com/aspnet-mvc/1102/aspnet-mvc-role-based-security http://www.asp.net/identity/overview/getting-started/introduction-to-aspnet-identity