加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 如何扩展/架构ASP.NET MVC 3授权处理此场景的属

发布时间:2020-12-15 18:58:42 所属栏目:asp.Net 来源:网络整理
导读:我一直在试图通过这个答案,找不到一个很好的解决方案如何正确地做到这一点. 我已经阅读了这些文章: http://schotime.net/blog/index.php/2009/02/17/custom-authorization-with-aspnet-mvc/ http://geekswithblogs.net/brians/archive/2010/07/08/implement
我一直在试图通过这个答案,找不到一个很好的解决方案如何正确地做到这一点.

我已经阅读了这些文章:
http://schotime.net/blog/index.php/2009/02/17/custom-authorization-with-aspnet-mvc/
http://geekswithblogs.net/brians/archive/2010/07/08/implementing-a-custom-asp.net-mvc-authorization-filter.aspx
ASP.NET MVC custom authorization
http://davidhayden.com/blog/dave/archive/2009/04/09/CustomAuthorizationASPNETMVCFrameworkAuthorizeAttribute.aspx
Custom Authorize Attribute additional Param?

想想也许最后一个是接近的.

场景:

>用户创建角色
>用户可以指定角色具有的访问权限.
>用户将用户添加到这些角色
>用户也是部门的一部分.

所以在控制器中我怎么说一个用户可以访问一个动作,因为我不知道用户管理员创建的角色是什么?

所以在逻辑…让我们说我有一个任务控制器与“创建”,“细节”.该任务有一个“服装”系.

>任务:
– TaskID
– TaskTitle
– TaskDepartmentID

> – 用户:
– 用户名
– 角色
– 部门

我将以某种方式将“创建”动作与“创建任务”功能相关联
我将以某种方式将“详细信息”操作与“查看任务详细信息”功能相关联

管理员将添加一个名为“任务用户”的新角色,并说这个角色可以“创建任务”
管理员还将允许此角色“查看任务详细信息”
管理员将打开“部门级安全性”

创建:
当在控制器上调用任务创建时,我需要确保用户在允许“创建任务”的角色中.所以默认情况下,我不能发送允许进入授权属性的“角色”,因为我不知道它们.我以某种方式需要发送用户拥有的所有角色,并查看角色是否可以访问“创建任务”

用部门安全查看:
当另一个用户去查看这个任务时,他们可以访问“查看任务详细信息”(我可以弄清楚我解决了第一个问题).但是,由于该任务是另一个部门,而是他们所在的其他部门,我需要拒绝访问.如果任务是用户所在部门的一部分,用户只能查看任务详细信息.

这是我无法想象的.如何正确扩展AuthorizeAttribute,以便我可以通过GerRolesForUser发送角色列表,因为它只接受一个字符串,以及如何识别它的Action,然后通过检查部门ID来限制其他级别的安全性.

部门ID不一定必须被缓存,所以我可以在控制器级别做到这一点.

解决方法

我有一些类似的问题,我没有使用Authorize属性.

相反,我决定扩展Controller类并覆盖OnActionExecuting的实现.在我的实施中,我可以执行所有的部门用户所属的检查,以及他是否足够好看其他部门的数据.看看这个方法是否适合你.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读