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

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

ASP.NET MVC 的新增功能。我正在寻找一些不完全特定于 MVC 的 UI 设计思想。可能没有确切的答案,但这就是我已经开始的。

需要有一个包含 3 个选项卡的页面。 权限|团体 |用户

1) 权限 View 将允许您对网格中的权限执行 CRUD 操作 仅当特定权限未在任何组中使用时才允许删除该权限。

2) 在组 View 中,网格中允许对组进行 CRUD 操作。 此外,还提供了一个权限链接,允许为组映射(添加/删除)权限 同样,只有当组没有被任何用户使用时,才允许对组执行 DELETE 操作。

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

数据库设计说明:

enter image description here

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

2) UserPermissionOverrides 将处理以下情况 - 用户需要被授予某些权限(无论他们所处的角色)或 - 如果需要撤销用户的某些权限,即使他们属于某个组。 这将使我们能够很好地灵活地处理添加或删除特定权限的特殊场景。

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

最佳答案

你的模型和功能对我来说都很有意义。但是,我认为您需要重新审视您为界面采用的用户体验原则。

  1. 写一些用户故事,即安全系统的用户打算做什么以及他们需要在该访问中实现什么目标。

  2. 您不必总是将 UI 与模型紧密耦合,即仅仅因为您以某种方式构建模型,这些实体就不必作为 CRUD 操作的主要对象呈现给用户。系统用户不太可能进来、添加权限然后离开。

与上述内容相关,我个人会将您的用户权限 UI 作为向导而不是一组选项卡来处理:

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

...或类似的。

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

祝你好运!

关于asp.net-mvc - ASP.NET MVC 的用户-组-权限用户界面设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15793122/

相关文章:

c# - 试图让 View 记住 ClientID

c# - 在 Justmock 中模拟构造函数调用对于 UrlHelper 失败

objective-c - iOS 中具有多个类的 MVC 设计模式

iphone - 带有 subview 的可变 UITableCellView 高度

java - 弹出一个框,要求用户等待程序循环并转换所有相关文件

c++ - Qt 应用程序标题

ASP.Net VS ASP.Net MVC

asp.net-mvc - MVC-Ajax.BeginForm提供htmlfile:未知的运行时错误

java - 使用 spring 重新映射 Web 应用程序 (tomcat) 中的图像请求以获得绝对路径

java - 遍历 hashmap 并将项目添加到 swing jcombobox