用户 - 组 - ASP.NET MVC的权限用户界面设计

时间:2013-04-03 16:37:55

标签: asp.net-mvc model-view-controller user-interface

ASP.NET MVC的新功能。我正在寻找一些不完全针对MVC的UI设计思路。可能没有确切的答案,但这是我开始的。

需要一个包含3个标签的页面。 权限|团体|用户

1)权限视图允许您对网格中的权限执行CRUD操作 只有在任何组中未使用该权限时,才允许删除特定权限。

2)在“组视图”上,允许在网格中对组进行CRUD操作。 此外,还提供了权限链接,允许对组执行映射(添加/删除)权限 同样,只有当任何用户未使用该组时,才允许对组执行DELETE操作。

3)在“用户视图”上,将显示系统中的所有现有用户。网格节目允许通过用户名,名字或姓氏搜索用户。 应为每个用户提供组链接,单击该用户时,可以为用户执行映射(添加/删除)组。 在同一视图中的此映射下方,应提供单独的权限覆盖部分,以便可以使用IsGranted(true / false)添加特定权限。

数据库设计说明:

enter image description here

1)将为组分配权限。根据用户所属的组,用户将获得权限。

2)UserPermissionOverrides将处理其中的场景 - 用户需要被授予某些权限(无论他们在哪个角色)或 - 如果需要从用户撤消某些权限,即使它们属于某个组。 这将使我们具有良好的灵活性,可以处理添加或删除特定权限的特殊方案。

因此,当用户登录时 - 1)将用于检索用户的组权限,然后2)将执行以检索覆盖(授予/撤销)。合并1)和2)将为用户提供最终权限,然后将其存储在表单身份验证cookie中以防止进一步的数据库命中

1 个答案:

答案 0 :(得分:2)

您的模型和功能对我来说都很有意义。但是,我认为您需要重新考虑用于界面的UX原则。

  1. 撰写一些用户故事,即安全系统的用户打算做什么以及他们为此次访问需要达到的目标。

  2. 您无需始终将UI紧密地耦合到模型,即仅仅因为您以某种方式构建了模型,这些实体不需要作为CRUD操作的主要对象呈现给用户。系统用户可能不太可能进入,添加权限并离开。

  3. 与上述情况相关,我个人会将您的用户权限UI作为向导而不是一组标签:

    • 第1步:选择用户或添加用户。
    • 第2步:他们需要哪些角色(提供添加角色的机会)。
    • 步骤3:它们属于哪些组(如有必要,请在此处提供组添加组)。

    ......或类似的。

    基本上,您的目标应该是让您的用户尽快进出系统。我认为创建用户故事和向导从中收集的向导的行为将是我在系统的UX设计中使用的方法。

    祝你好运!