ASP.NET Core 2.x身份-多个“区域”

时间:2019-06-24 11:04:56

标签: c# asp.net asp.net-mvc identity core

我们有一个运行大多数业务的旧版Webforms应用程序,由于多种原因,我们正在用ASP.NET Core重写此应用程序。我们要做的一件事是从我们自己的安全性实现中迁移而转而依赖于ASP.NET Identity。我们的主要问题是我们有成千上万个帐户,每个帐户分配了1个或多个用户。每个帐户具有可用的相同角色(AccountOwner,SupportAdmin,BillingAdmin等)。这在我们的“角色”表中定义如下:

角色ID(AutoInc),帐户ID,角色名称,角色描述

如果某个角色可用于所有帐户,则输入如下:

0,AccountAdmin,帐户管理员

0,SupportAdmin,支持管理员

0,BillingAdmin,帐单管理员

...等等,我们大约有10个角色以这种方式分配,并且可用于我们拥有的每个帐户。我们还有几个其他帐户(主要是为我们的员工服务),它们具有更具体的角色,例如:

1500,员工,公司员工

当前,我们调用类似于以下的例程:

If(user.isinrole(UserID,AccountID,“ AccountOwner”)){} ...

据我所知,ASP.NET Identity中没有类似的内容,因此很难管理多个帐户。

这似乎有点普遍,有人成功(安全地)做到了吗?如果可以,怎么办?我们是否最好使用ASP.Net Identity进行身份验证并使用我们自己的例程进行授权?我们想出的是:

1)扩展Identity类以包含我们想要的内容,这对我们来说没有太大的吸引力,因为现在我们再次依赖于自定义代码与强化的身份验证系统

2)每次创建帐户时,都要创建10-15个新角色,例如:1242_AccountOwner等(accountID为1242的AccountOwner角色)。

任何输入将不胜感激。

0 个答案:

没有答案