ASP.NET MVC中UI控件上的角色基本访问

时间:2017-12-14 18:50:48

标签: c# asp.net-mvc razor role-based-access-control

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

  • 管理员可以更新所有字段
  • 发起人可以在除评论框
  • 之外的所有页面控件中插入数据
  • 审核者只能在评论框中插入数据
  • 指南只能在屏幕上阅读数据,无权访问屏幕上的任何内容

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

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

1 个答案:

答案 0 :(得分:1)

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

  1. 您的剃须刀视图不会使用任何授权码。
  2. 创建类似"所有授权X应用程序"
  3. 的组/角色
  4. 为各个功能创建组/角色,例如" X管理员"," X发起者"," X审稿人"和" X指南"
  5. 将第三个项目符号中的所有组/角色添加到第二个项目
  6. 装饰您的控制器,如return new HttpUnauthorizedResult();
  7. 在保存/更新操作中,使用[Authorize ("Roles="All Authorized X app")]if(User.IsInRole("X Administrators"))