2012-03-29 5 views
1

Ich werde eine einzige LOGIN-Datenbank verwenden (SQL bildet authenication), um die Benutzerinformationen zu halten, die Benutzerprofilinformationen, die zur Verfügung stehenden Datenbanken für einen Benutzer (einschließlich aller verfügbaren Datenbanken für einen bestimmten Client) und ein Einstellungen/Einstellungen des Benutzers. Aber ich muss separate Rollentabellen in separaten Datenbanken haben, so dass, wenn ein Benutzer sich bei der ersten Datenbank anmeldet und auswählt, mit welcher Datenbank er sich verbinden soll, die Rollen, denen er zugewiesen ist, von der Datenbank bestimmt werden. Die Rollen variieren abhängig von der Datenbank und können von Datenbank zu Datenbank variieren. Die Datenbankschemata sind für jede verbundene Datenbank identisch. Was wären deine Vorschläge? Danke!MVC 3-Formularauthentifizierung mehrere Datenbankrolle Tabellen

Antwort

1

Der einfachste Weg, ein benutzerdefinierten RoleProvider, die intern verwendet ein Lager SqlRoleProvider mit der richtigen Verbindungszeichenfolge initialisiert zu implementieren wäre für den aktuelle Datenbank des Benutzers.

+0

Würdest du ein Beispiel dafür wissen? Ich denke, du hast Recht, aber das Wie ist mir an diesem Punkt nicht klar. Thaanks! – user1011441

1

Die einzige Login Datenbank Benutzerinformationen zu halten, sollte für jede Datenbank eine Tabelle mit Rollen haben. Ich bin mir nicht sicher, wo Sie die Logik für welche Rolle auf was in jeder Datenbank zugreifen möchten. Wenn Sie es in einer Datenbank setzen wollten, dann sollten sie in ihren jeweiligen Datenbanken gehen. Die Benutzerinformationen sollten enthalten, auf welche Rollen der Benutzer in jeder Tabelle über eine Junction-Tabelle Zugriff hat.

User 
---- 
UserId 
Name 

UserRoles 
--------- 
UserRolesId 
UserId 
AllRolesId 

AllRoles 
-------- 
AllRolesId 
DatabaseName 
RoleName