1

我正在构建一个应用程序,例如,不同角色的多个用户可以访问同一页面

  • 管理员可以更新所有字段
  • Initiator可以在页面的所有控件中插入数据,除了评论框
  • 审稿人只能在评论框中插入数据
  • 指南只能读取屏幕上的数据,无法更新屏幕上的任何内容

到目前为止,我唯一想到的是我应该制作自定义 Html 帮助程序,在其中我将接受角色作为参数并检查角色并相应地向控件添加禁用或启用类。应用程序将有数百个页面,但某些页面可能对不同角色具有不同的访问权限。请提供一个解决方案,我可以在其中实现此特定页面和基于角色的访问控制,并且不会对性能造成太大影响。

任何帮助或建议将不胜感激。谢谢你。

4

1 回答 1

1

您真的要隐藏用户无权更新的控件吗?或者只是return new HttpUnauthorizedResult();在他们点击保存/更新按钮时显示未经授权的错误 ( )。如果您更喜欢后者,这是一种方法:

  1. 您的剃刀视图不会使用任何授权码。
  2. 创建一个组/角色,例如“All Authorized X app”
  3. 为各个职能创建组/角色,例如“X 管理员”、“X 发起人”、“X 审阅者”和“X 指南”
  4. 将第三个项目符号中的所有组/角色添加到第二个项目符号中
  5. 像这样装饰你的控制器[Authorize ("Roles="All Authorized X app")]
  6. 在您的保存/更新操作中,使用if(User.IsInRole("X Administrators"))if(User.IsInRole("X Reviewer"))
于 2017-12-15T17:44:41.300 回答