ASP.NET Core 2.2 中的条件用户角色
Conditional User Roles in ASP.NET Core 2.2
我正在创建一个问题跟踪系统 ASP.NET Core 2.2 Web 应用程序,用于跟踪和管理具有以下用户角色的项目创建:匿名网站访问者、登录用户、管理员、项目负责人和问题受理人。登录用户可能是某些项目的项目负责人,同时 - 其他项目的某些问题的问题受让人。
我如何实施用户角色管理,以便 ProjectController 中的项目负责人和 IssueController 中的 Issue Assignee 的特定操作只能由分配给他们的用户访问?
您描述的问题是安全角色方法的内在问题(因此与 ASP.NET Core 无关)。在这里使用它不会满足你的要求,因为你需要一个基于 'per instance' 的安全性,也就是说,控制用户可以对每个不同的项目和每个不同的问题执行一些操作,所以每个用户的角色因上下文而异。
因此,我在这里的建议是在项目 class 上创建一个名为 LeaderID 的新 属性,它将维护作为领导者的用户的 ID,然后检查是否与您想要的每个控制器操作中的当前用户。
问题案例有点困难。如果你的一个issue只有一个issue asignee,那么情况同上,只需要在Issue class中添加一个名为AsigneeID的属性。如果没有,您将不得不创建一个新的 table/entity 以多对多的方式保存每个问题的所有受让人。
祝你好运!
我正在创建一个问题跟踪系统 ASP.NET Core 2.2 Web 应用程序,用于跟踪和管理具有以下用户角色的项目创建:匿名网站访问者、登录用户、管理员、项目负责人和问题受理人。登录用户可能是某些项目的项目负责人,同时 - 其他项目的某些问题的问题受让人。
我如何实施用户角色管理,以便 ProjectController 中的项目负责人和 IssueController 中的 Issue Assignee 的特定操作只能由分配给他们的用户访问?
您描述的问题是安全角色方法的内在问题(因此与 ASP.NET Core 无关)。在这里使用它不会满足你的要求,因为你需要一个基于 'per instance' 的安全性,也就是说,控制用户可以对每个不同的项目和每个不同的问题执行一些操作,所以每个用户的角色因上下文而异。
因此,我在这里的建议是在项目 class 上创建一个名为 LeaderID 的新 属性,它将维护作为领导者的用户的 ID,然后检查是否与您想要的每个控制器操作中的当前用户。
问题案例有点困难。如果你的一个issue只有一个issue asignee,那么情况同上,只需要在Issue class中添加一个名为AsigneeID的属性。如果没有,您将不得不创建一个新的 table/entity 以多对多的方式保存每个问题的所有受让人。
祝你好运!