MVC用户多级层次结构和动态角色分配

时间:2016-01-02 20:30:29

标签: asp.net-mvc

我是MVC的新手,但我在C#Winforms,数据库设计和规范化方面有很好的经验。 我想使用MVC动态定义用户及其角色。

详细说明

有一个组织负责部门(HOD)。 有几个分支机构,每个办事处都有一名在HOD下工作的分部主管。 每个分支机构官员都有权为其员工分配不同的可访问性。 对于Eg:出纳员也可以访问生成账单。

我的问题是:

  1. HOD(管理员)将创建分支机构官员(BO).HOD将访问所有控制器中的所有已定义的操作。
  2. BO如何创建一个只能访问BO定义的“控制器动作”的用户,以及二级用户想要创建另一个三级用户的内容
  3. BO和他的后代只能访问他们的分支机构。他们看不到另一个分支的任何细节,但是HOD可以查看任何分支的任何细节。 (我希望在服务器端进行此授权以避免跨站点脚本)
  4. 请指导我,如何实施此多模式和动态角色管理模型?

    我搜索了很多,但找不到任何可以帮助我的东西。 BTW该项目是员工管理系统,包括工资单,休假管理,员工服务手册等。 提前谢谢。

1 个答案:

答案 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