2016-12-26 3 views
1

Ich habe einen benutzerdefinierten Rollensatz, der in einer Multi-Tenant-App verwendet werden soll.gemeinsame Rollen für alle Mandanten in AspNetBoilerplate

Die Tabelle AbpRoles enthält eine Spalte mit dem Titel "TenantId" (Nullwert).

Problem ist, dass, wenn ich dieses Feld mit einem Null-Wert belasse, ein Benutzer pro bestimmten Mieter nicht als mit einer bestimmten Rolle verbunden erkannt werden kann. Aber wenn ein AbpRole-Datensatz einen Mandanten-ID-Wert hat - alles funktioniert ziemlich gut.

Die Grundlinie ist:

mein Code hat für jeden Mieter den gleichen Satz von Rollen zu erstellen, so dass ich mich nur gefragt, ob es möglich ist für alle Mieter gemeinsamen Satz von Rollen zu haben.

Wenn der TenantId Wert null für AbpRole Datensatz und ich den Code wickeln, die überprüft, ob Benutzer eine Rolle

User.IsInRole("Employee") 

in diesen Block

using (_unitOfWorkManager.Current.DisableFilter(AbpDataFilters.MayHaveTenant)) 

das Problem noch nicht gelöst gehört.

Antwort

1

Sorry für späte Antwort. Für die Jungs, die eine Antwort auf diese Frage suchen; Rollen sollten pro Mandant erstellt werden. Wenn Sie einen einzelnen Mandanten verwenden, verwenden Sie die ID des Standardmandanten. Daher können Sie eine Rolle nicht teilen. Wenn Sie darauf bestehen, Rollen mit mehreren Mandanten zu teilen, müssen Sie MayHaveTenant jedes Mal deaktivieren, wenn Sie eine Rolle ausführen.

0

Ich habe genau die gleiche Art von "Problem", weil ich einige Rollen und Berechtigungen für alle Mandanten mit Multitenancy aktiviert haben möchte. Ich meine, ich will das nicht tun: Berechtigungen x Anzahl der Mieter x (Benutzer) ... Es ist so viele identische Berechtigungen und es ist ein Unsinn.

Verwandte Themen