多租户环境 - 多个成员资格提供者,每个租户1个DB,一个单一应用程序

Dan*_*tta 6 asp.net-membership azure multi-tenant azure-sql-database

我搜索了SO,找不到符合我情景的任何东西......

多租户环境 - 多个成员资格提供者,每个租户1个数据库,Azure上的一个单一应用程序...

问题很简单:

可以像这样配置Asp.net会员提供商吗?有关如何的线索?

现在你们都知道了这个问题,让我们了解细节......

这个堆栈应该在Azure上运行,SQL Azure用于持久数据,ASP.net成员资格,MVC4,EF5和一些眼睛糖果......

挑战在于:

  1. 创建在Azure中运行单个应用程序的多租户环境(工作者角色和Web角色,但不是特定于租户或面向的);

  2. 数据库一对一隔离(每个租户一个数据库);

  3. 在每个数据库中运行一个Asp.net成员,以便对每个租户创建的用户进行身份验证和授权;

  4. 一个主数据库,包含共享数据和主要的Asp.net成员资格,只有管理员用户(主站点管理员和租户管理员)登录...

重要的是说所有数据库都具有完全相同的结构,除了主要数据库...

不知道是否有帮助,但堆栈还包括MVC4,EF5(DB First方法);

实际上,我正在考虑使用MVC路由机制来收集租户标识,然后设置一个特定的Db Context,其中所有操作都应该适用;

有任何想法吗?

Sar*_*nan 0

默认情况下,asp.net 成员资格不适合多租户环境,因为它不支持用于标识给定用户的成员资格和角色详细信息的租户标识符的概念。您可以选择使用自定义成员资格提供商,也可以使用联合或 SSO,并将应用程序角色映射到用户在使用应用程序时引入的 SSO 角色。