Domanda

Sono in procinto di cambiare un singolo sito Web SQL DB (ASP.NET/VB.NET) in un'app multi-tenant, in cui ogni client ha il proprio database.

Nel vecchio sito, tutti i ruoli, gli accessi e i provider ASP puntavano al singolo database.

Ora abbiamo più database, mi chiedo quale sarebbe la migliore architettura / tecnica da usare. Esiste un database che configura i tenant, come il nome dell'azienda, varie impostazioni (che normalmente si troverebbero in un web.config) e la stringa di connessione al loro database tenant.

Dovremmo avere tutti i membri & amp; roba di ruolo nel singolo database che configura gli inquilini o abbiamo un abbonamento & amp; ruoli in ogni singolo database dei tenant? L'opzione 2 sembra complicata perché penso che ad ASP.NET piaccia solo un set di RoleProviders definiti in web.config.

Qualcuno ha provato prima o ha ricevuto consigli?

È stato utile?

Soluzione

Se si utilizza il modello di appartenenza ASP.Net con i provider integrati, inserirli in un DB è il modo più semplice come indicato.

Un'opzione, e non l'ho provato, è quella di definire nel tuo file web.config un provider per ogni tenant. Ciò consentirebbe a ciascun inquilino di avere il proprio db di appartenenza e di evitare collisioni tra i titolari del nome utente (se questo è un requisito).

Altri suggerimenti

Dovresti essere in grado di configurare la stringa di connessione al database di appartenenza ASP.NET in fase di runtime. Questa discussione ha alcune opzioni tra cui un fornitore di abbonamento personalizzato o la modifica del valore in anticipo nel ciclo di vita della richiesta tramite Global.asax.cs.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top