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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top