相关疑难解决方法(0)

具有租户特定角色的 ASP.NET 多租户应用程序

我们有一个多租户 ASP.NET 应用程序。到目前为止,租户已相互隔离,但是现在我们拥有管理多个租户的代理,并希望能够使用单个用户帐户管理所有租户。我正在努力找出实现这一目标的最佳方法,希望不会对我们正在使用的现有技术进行太大改变。

相关技术细节:

  • 用于成员资格和角色的 AspNetSqlMembershipProvider
  • C# 4.0(即将成为 4.5)
  • 表单认证
  • aspx 和 MVC (v3) 页面
  • 假设有 100 个或更多租户,因此任何解决方案都需要支持

我相信这些要求与 SQL Server 的安全模型非常相似。我们有一组登录名,代表可以登录系统的所有用户。用户应该能够被赋予一个或多个数据库(租户)的角色。示例:用户 Bob 在公司 A 中具有管理员角色,但在公司 B 中仅具有用户角色。我们还为我公司的员工提供“系统管理员”角色,允许我们访问任何租户以及专门的管理权限,例如创建/删除租户, 等等。

我对各种库、框架等进行了大量研究,但没有发现任何令人信服的证据表明其他库或框架会比我们目前拥有的更好。所以我目前正在考虑如何让 Sql Membership 提供者做我想做的事,除非有人能指出我更好的方向。我也不确定我知道在这方面搜索的最佳术语。

我有两个我正在考虑的选择:

  1. 仅向成员资格提供者添加少数角色,并在成员资格提供者之外处理“当前用户在此租户中是否具有此角色”的所有问题。会员提供程序将用于处理对系统的基本访问。
  2. 将租户特定角色添加到成员资格提供商。我们将在系统中拥有(# 个角色)x(# 个租户)角色。每个新租户都会向系统添加另一组角色,例如“租户 A:管理员”、“租户 A:用户”等。需要一些额外的表来管理关系以及一些自定义代码以确保访问正在向成员资格提供商请求正确的租户特定角色。

这些选项中的任何一个都好吗?还是我应该到别处寻求支持?

c# asp.net asp.net-membership roleprovider asp.net-mvc-3

2
推荐指数
1
解决办法
7426
查看次数