ASP.NET Identity i własna baza

ASP.NET Identity i własna baza
P0
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad rok
  • Postów:32
0

Cześć. Mam małą rozterkę przy projektowaniu aplikacji na ASP.NET MVC. Chcę użyć podejścia Code First w Entity Framework (baza zaprojektowana) i tutaj pojawia się problem ponieważ uwzględniłem że w bazie będą tabelki User i User_Role jako odpowiedniki do autoryzacji. Problem jednak tkwi w tym że mechanizm Identity w ASP.NET tworzy już własne tabele z odpowiednią strukturą. Czy można to jakoś połączyć czy może jednak zrezygnować z tych tabel w bazie (a właściwie to w modelu ze względu na Code First) i przejść w całości na mechanizm Identity?

WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:dzień
  • Postów:5147
0

Też się zastanawiam, ale wydaje mi się, że nie będzie to proste.

Nazwy możesz chyba spokojnie nadpisać konfigurując OnModelCreating

https://stackoverflow.com/questions/28948309/how-to-remove-dbo-aspnetuserclaims-and-dbo-aspnetuserlogins-tables-identityuser

SZ
  • Rejestracja:prawie 11 lat
  • Ostatnio:2 minuty
  • Postów:1526
2

Oczywiście, że można. Robisz własny UserStore RoleStore i działa. https://github.com/szydlaczek/Exchange. W tym kodzie masz wszystko porejestrowane w autofacu. Jest przykład logowania, rejestracji. W tabelach definiujesz takie kolumny jak Ci są potrzebne.

edytowany 2x, ostatnio: szydlak
Aventus
  • Rejestracja:około 9 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:UK
  • Postów:2235
2

Jak najbardziej sie da. Tutaj wiecej na ten temat, oraz link do przykladowego podanego przeze mnie kodu uzywajacy "bazy" w pamieci.


Na każdy złożony problem istnieje rozwiązanie które jest proste, szybkie i błędne.
WeiXiao
To działa z User.IsInRole?
Aventus
@WeiXiao: powinno, UserStore przyjmuje RoleStore z ktorego wyciaga po role name i sprawdza czy ma przypisanego uzytkownika.
P0
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad rok
  • Postów:32
1

@Aventus: Na ten moment podany przez Ciebie temat najbardziej mnie nakierował na rozwiązanie. Będę musiał to sprawdzić bo jak na razie od niedawna dopiero zaczynam przygodę z ASP.NET. Dzięki

JU
  • Rejestracja:około 22 lata
  • Ostatnio:3 miesiące
  • Postów:5042
0

Żadne UserStore. Klasy *Store są do przechowywania danych zupełnie "po swojemu". A po co pisać je na nowo, skoro już są? Wystarczy dziedziczyć po User i UserRole. Możesz w ten sposób dodać własne kolumny, które potrzebujesz i problemu nie ma.

SZ
Też prawda. W ten sposób nie robiłem. Ale jak piszesz powinno wystarczyć. Tylko jak wtedy z rolami? User powinien mieć kolekcje IdentitiRole? A jak chce zastąpić identityRol swoją tabelą?
JU
Ale po co chcesz zastępować IdentityRole swoją tabelą? Przecież wystarczy, że będziesz dziedziczył po IdentityRole. User nie musi mieć kolekcji roli. To wszystko jest do zdobycia przez UserManagera.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.