Co tym razem przygotował Microsoft? Możliwości ASP.NET Identity:
- łatwe dodawanie dodatkowych informacji do profilu użytkownika
- domyślnie użycie Entity Framework jako ORM
- kontrola zapisu (możliwość wyboru czy dane mają zostać zapisane w SQL Azure, MS SQL, NOSQL itp)
- wsparcie dla TDD dzięki dużo lepszej architekturze frameworka
- wsparcie dla ról w aplikacji
- system nadawania praw do poszczególnych aspektów aplikacji
- zewnętrzna autoryzacja (Facebook, Twitter itp)
Schemat bazy ASP.NET Identity przedstawia się następująco:
Dużo przyjemniejszy niż w przypadku starego MembershipProvidera. Dodawanie nowych kolumn i informacji o użytkowniku też nie sprawia problemów:
Wystarczy zlokalizować klasę IdentityUser i dodać w niej nowe pole:
Code:
Jeżeli korzystamy z mechanizmu automatycznych migracji, wystarczy że utworzymy migrację i uaktualnimy bazę danych.
Projekt domyślnie tworzy szablonowe widoki tworzenia i modyfikowania danych użytkownika. Dostajemy gotowe klasy modeli. Jedynie co brakuje to metod odpowiedzialnych za widoki. Jeżeli chcemy użyć innej klasy (np. już istniejącej w systemie) do przechowywania informacji o użytkowniku, wystarczy że zaimplementujemy interfejs IUser:
Code:
Jak widać Id użytkownika przetrzymywane jest tutaj jako pole typu string - i takiego też typu jest domyślnie tworzone w bazie danych. Czy to dobre rozwiązanie? Moim zdaniem nie do końca. Dużo lepszym rozwiązaniem byłoby pozwolenie deweloperowi wybrania czy Id ma być łańcuchem, Guidem czy też liczbą. W nowej wersji frameworka (beta) poprawiono tę niedogodność.
Brak komentarzy:
Prześlij komentarz