Convertendo Individual DB ASP.NET site em multitenant - Composição e Funções Dilemma
-
20-08-2019 - |
Pergunta
Eu estou no processo mudando um único site SQL DB (ASP.NET/VB.NET) em um aplicativo multitenant, onde cada cliente tem seu próprio banco de dados.
No site antigo, todos os papéis ASP, logins e prestadores apontou para o único banco de dados.
Agora temos vários bancos de dados, eu estou querendo saber qual seria a melhor arquitetura / técnicas para uso. Há um banco de dados que configura os inquilinos, como o nome da empresa, várias configurações (que, normalmente, seria em um web.config) e a seqüência de conexão para seu banco de dados inquilino.
que deve ter todos os membros e papel material no banco de dados único que configura os inquilinos ou temos filiação e papéis em cada banco de dados inquilinos individual? Opção 2 parece complicado, porque eu acho ASP.NET só gosta de um conjunto de RoleProviders definidos no web.config.
Alguém já tentou isso antes ou tem alguma recomendação?
Solução
Se você estiver usando o modelo ASP.Net Membership com o built-in fornecedores, em seguida, colocá-los em um DB é o mais fácil como você indicou.
Uma opção, e eu não tentei isso, é definir no seu arquivo web.config um provedor para cada inquilino. Isso permitiria que cada inquilino ter seu próprio db membros, e permitem que você para evitar colisões de nome de usuário entre os inquilinos (se esta é uma exigência).
Outras dicas
Você deve ser capaz de configurar a seqüência de conexão de banco de dados de membros ASP.NET em tempo de execução. Esta discussão tem algumas opções, incluindo um provedor de associação personalizado ou alterar o valor no início no ciclo de vida do pedido via Global.asax.cs.