Niestandardowy dostawca członkostwa * Bez * bazy danych?

Rozważałem różne pytania dotyczące SO, posty na blogach itd. Dotyczące zmian w dostawcach członkostwa w MVC 4. Podoba mi się wiele zmian i uproszczenie rzeczy (w szczególności zewnętrzne logowanie zewnętrzne) wsparcie), nie jestem jeszcze w stanie znaleźć jednej pozornie prostej rzeczy ...

Jak mogę zastąpić dostawcę członkostwa / roli niestandardowym dostawcą korzystającym z innego źródła danych?

Nie chcę zastępowaćWebSecurity lub coś tak drastycznego, ponieważ obsługuje wszystkie rzeczy, które chcę obsłużyć. (Na przykład zarządzanie plikami cookie). Nie chcę robić niczego, co złamałoby istniejącą obsługę zewnętrznych dostawców logowania, ponieważ moja aplikacja korzysta z tych w połączeniu z lokalnymi loginami. Wszystko, co chcę zrobić, to wstawić między systemem członkostwa i bazą danych za nim i dostosować pobieranie danych.

Tworzone domyślnie tabele to:

Profil użytkownikawebpages_Membershipstrony internetowe_OAuthMembershipwebpages_Roleswebpages_UsersInRoles

I podczas gdy to działa, mam powód, aby to streścić za niektórymi niestandardowymi obiektami i przerwać połączenie między aplikacją a bazą danych. (Zasadniczo mam kilka niestandardowych modeli domen pełnych logiki biznesowej, które powinny obsługiwać to wszystko, i chcę, aby system członkostwa / roli używał tych modeli zamiast bazy danych. Te modele mogą uzyskać swoje trwałe dane z bazy danych, mogą nie, to nie powinno mieć znaczenia.)

Większość referencji, które znajduję dla personalizacji, twierdzi, że jest łatwa do zrobienia, jedyne co muszę zrobić, to zmodyfikowaćUserProfile model, dołącz moje nowe niestandardowe pola do różnych połączeń i zaktualizuj połączenie doInitializeDatabaseConnection wskazać na mój schemat bazy danych.

Ale nie używam bazy danych. (A dokładniej, jeśli chodzi o warstwę aplikacji, nie ma czegoś takiego jak baza danych. Tylko moje modele domen.) Tak więc łatwe dostosowanie nie zmienia niczego.

Czy istnieje sposób na wtrącenie między systemem członkostwa a bazą danych, aby móc utworzyć niestandardowego dostawcę danych dla istniejącego dostawcy członkostwa?

questionAnswers(1)

yourAnswerToTheQuestion