Ein benutzerdefinierter Mitgliedschaftsanbieter * Ohne * eine Datenbank?

Ich habe mich in verschiedenen SO-Fragen, Blog-Posts usw. umgesehen, die sich mit den Änderungen bei den Mitgliedschaftsanbietern in MVC 4 befassen. Ich mag jedoch viele der Änderungen und die Vereinfachung der Dinge (insbesondere die sofort einsatzbereite externe Anmeldung) Support), ich bin noch nicht in der Lage, eine scheinbar einfache Sache zu finden ...

Wie kann ich den Mitgliedschafts- / Rollenanbieter mit einem benutzerdefinierten Anbieter überschreiben, der eine andere Datenquelle verwendet?

Ich möchte nicht ersetzenWebSecurity oder irgendetwas so drastisches, da es alle Dinge handhabt, die ich will, dass es handhabt. (Cookie-Verwaltung zum Beispiel.) Ich möchte nichts tun, was die bestehende Unterstützung für externe Anmeldeanbieter beeinträchtigt, da meine Anwendung diese in Verbindung mit lokalen Anmeldungen verwendet. Alles, was ich tun möchte, ist, zwischen dem Mitgliedersystem und der Datenbank dahinter einzugreifen und das Abrufen der Daten anzupassen.

Die Tabellen, die standardmäßig erstellt werden, sind:

Benutzerprofilwebpages_Mitgliedschaftwebpages_OAuthMembershipwebpages_Roleswebpages_UsersInRoles

Und während das funktioniert, muss ich dies hinter einigen benutzerdefinierten Objekten abstrahieren und die Kopplung zwischen der Anwendung und der Datenbank aufheben. (Grundsätzlich habe ich einige benutzerdefinierte Domänenmodelle, die voll von Geschäftslogik sind, und ich möchte, dass das Mitgliedschafts- / Rollensystem diese Modelle anstelle der Datenbank verwendet. Diese Modelle erhalten ihre persistierten Daten möglicherweise aus einer Datenbank nicht. Das sollte egal sein.)

Die meisten Referenzen, die ich für die Anpassung finde, behaupten, dass es einfach ist, alles, was ich tun muss, ist das zu ändernUserProfile Modell, nehmen Sie meine neuen benutzerdefinierten Felder in verschiedene Aufrufe auf und aktualisieren Sie den Aufruf aufInitializeDatabaseConnection um es auf mein Datenbankschema zu verweisen.

Aber ich benutze keine Datenbank. (Genauer gesagt, für die Anwendungsebene gibt es keine Datenbank. Nur meine Domänenmodelle.) Die einfache Anpassung ändert also nichts.

Gibt es eine Möglichkeit, eine Intervention zwischen dem Mitgliedschaftssystem und der Datenbank durchzuführen, damit ich einen benutzerdefinierten Datenanbieter für den vorhandenen Mitgliedschaftsanbieter erstellen kann?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage