设计基于角色的访问控制数据库

时间:2019-03-08 13:01:48

标签: asp.net-mvc database-design

我正在尝试为组织构建MVC Core应用。有些模糊的要求我无法理解。我希望社区能够在这里帮助我。

将有两种类型的用户。一个将是管理员,另一个将是普通用户。管理员可以访问admin模块和其余模块,而这些普通用户中的每个用户都可以访问不同的模块(admin除外)以及这些模块内的子菜单。让我解释一下。

让我们假设我们有两个模块:灾难恢复和资产跟踪。管理员将能够访问这些模块中的每个模块。但是,某些普通用户可能会或可能无法访问这两个模块中的每一个。一些用户可能有权访问两个模块,而某些用户只能访问一个模块。

现在是棘手的部分。每个模块内都有子菜单。例如,如果我们有一个名为Asset Tracking的模块,则该模块内的子菜单可以是ASST0001,ASST0002等。这些子菜单是我的MVC视图。同样,如果用户可以访问模块,并不表示他/她将可以访问该模块的整个子菜单。此应用程序将可扩展,并且随着时间的推移,用户数量可能会增加。

如何解决此问题?解决这个问题的最有效方法和可扩展方法是什么?

对不起,如果我看起来很天真,但这是我设计此类东西的第一项真正工作。我在互联网上搜索,其中大多数人都在谈论角色,用户和权限,而这些角色,用户和权限实际上只是让我感到头疼。请引导我。

1 个答案:

答案 0 :(得分:0)

您需要为此Creating a custom requirement使用自定义要求,这是博客文章。

您甚至可以在需求句柄中注入Dbcontext或存储库