当用户可以在dotnet中的多个位置担任多个角色时,最合适的授权处理方式是什么

时间:2019-05-07 07:14:40

标签: c# .net-core authorization roles

我有一个NET CORE应用程序,用户可以在其中扮演多个角色; SiteEmployee,SiteAdmin和CompanyAdmin。所有这些角色都与特定的站点/公司关联。用户在不同位置可以具有不同的角色(您可以同时是站点中的SiteEmployee和公司中的CompanyAdmin)。使用角色意味着[Authorize(Roles =” CompanyAdmin“)]将允许他访问所有公司,而不仅限于他应该访问的公司。

现在,我通过使用ASP.Net角色并在数据库的表中将用户分配给站点/公司来处理此问题。 我意识到我只使用[Authorize(Roles =” SiteEmployee“)]角色来检查对控制器方法的访问,但是在这些方法中,我还必须检查用户是否是该特定站点的一部分。这意味着我必须两次授权用户。 使用角色似乎是多余的,但这也似乎是其他人会遇到的问题。因此,对此必须有一个体面的解决方案。

所以我的问题是:处理此授权的最合适方法是什么?

我研究了实现自己版本的Authorize,并从实现该方法的方法中获取了一个参数,但据我所知,这是不可能的。 我还研究了使用基于资源的授权,但是不确定我是否真的需要。

0 个答案:

没有答案