Ich möchte eine mandantenfähige ASP.NET MVC-App einrichten. Idealerweise hätte diese App eine Route mit {tenant}/{controller}/{action}/{id}
, wobei jede tenant
eine logische Instanz der App darstellt (einfach unabhängige Multi-User-Accounts)
Die feinkörnigen Details, wie ist das für mich noch völlig unklar? Gibt es eine Anleitung zum Einrichten eines solchen Multi-Tenant-Schemas mit ASP.NET MVC?
Ich arbeite derzeit an einem ähnlichen Projekt mit ASP.Net MVC, Formularauthentifizierung und den SQL-Anbietern für Mitgliedschaft / Rollen / Profil. Hier ist der Ansatz, den ich nehme:
Registrieren Sie die Standardroute als {tenant} / {controller} / {aktion} / {id}
Ändern Sie das Standardverhalten des FormsAuthenticationService, der mit der Standard-MVC-Vorlage geliefert wird. Es sollte die UserData des Authentifizierungstickets so festlegen, dass der Name des Mandanten (aus Ihrer Route) enthalten ist.
%Vor%In Ihrer global.asax-Datei können Sie eine Mandantensicherheitsprüfung durchführen und die Aufteilung von Benutzern zwischen Mandanten in einer Mitgliedschaftsdatenbank zulassen
%Vor%Partitionieren Sie alle Tenant-Daten. Hier sind zwei Optionen:
4a. Verwenden Sie für jeden Mandanten eine separate Datenbank. Dies bietet die beste Datensicherheit für Ihre Mieter. Fügen Sie in der Datenbank für gemeinsam genutzte Mitglieder eine Tabelle hinzu, die für jeden Mandanten in eindeutiger appid eingegeben wird, und verwenden Sie diese Tabelle zum Speichern und Abrufen der Verbindungszeichenfolge basierend auf dem aktuellen Mandanten.
4b. Speichern Sie alle Daten in einer Datenbank und geben Sie jede Tabelle in der eindeutigen Tenant-ID ein. Dies bietet etwas weniger Datensicherheit für Ihre Mandanten, verwendet jedoch nur eine SQL Server-Lizenz.
Tags und Links asp.net-mvc multi-tenant asp.net-mvc-routing