Jakie są wady używania / pisania niestandardowego dostawcy członkostwa .Net?


12

Ostatnio opublikowałem następujące pytanie na SO: /programming/7197337/using-asp-net-membership-provider-with-an-existing-user-database

Jak można zauważyć, skończyłem odpowiadając na moje pytanie, stwierdzając, że wyglądało to na napisanie / wdrożenie „niestandardowego dostawcy członkostwa”.

Dosłownie kilka minut później natknęłam się na to pytanie: /programming/7222306/simple-login-attempt-counter-using-mvc-3-and-ajax/7222407#7222407

Próbuję odpowiedzieć i uzyskać komentarz, że dostawca członkostwa w .Net jest „straszny na wielu poziomach”. Przyznaję, że po raz pierwszy korzystam z dostawcy członkostwa, ale z pewnością wyglądało to dla mnie elegancko.

Nie widziałem niczego, co uzasadniałoby twierdzenie „okropne”, więc zanim wdrożyłem coś „okropnego”, miałem nadzieję uzyskać informację zwrotną od społeczności.


Czekamy na odpowiedzi, +1 ..
Pankaj Upadhyay

Odpowiedzi:


1

Nie jestem więc pewien, czy „straszne” jest tutaj najlepszym słowem. Ma to jednak ograniczenia i gdy tylko Twoje potrzeby nie pasują do tego, w jaki sposób zaprojektowano dostawcę członkostwa, dostajesz dużo kodu kleju. Jeśli możesz użyć dostawcy członkostwa od razu po wyjęciu z pudełka, powiedziałbym, że idź. Jak tylko zaczniesz pisać niestandardowy, i tak pytam o członkostwo.

Z mojego doświadczenia wynika, że ​​dostawca członkostwa kupuje ci ...

  • Zarejestruj się już w aplikacji MVC
  • Edycja konta
  • Zapomniałeś hasła? Łatwo się podłączyć
  • Sprawdź poprawność metody użytkownika

Jestem pewien, że brakuje mi czegoś jeszcze, ale myślę, że to są te duże. Teraz, gdy potrzebujesz niestandardowego zarządzania hasłem, uwierzytelniania dwuskładnikowego, do pracy z istniejącym modelem danych lub całego szeregu innych rzeczy, które zaczynasz tracić. Kod, który został już napisany dla Ciebie z podaniem członkostwa, powinien zająć kilka dni, aby go zduplikować, jeśli wiesz, co robisz.


1

Nie robi tego, co chcesz. Na pierwszy rzut oka może się okazać, że zaspokoi wszystkie Twoje potrzeby i niektóre, ale pojawia się nowy wymóg. Teraz „naprawdę” musisz nauczyć się, jak to działa. Korzyści z posiadania tego wszystkiego wstępnie zmalały, ponieważ byłeś w tym fałszywym poczuciu bezpieczeństwa.

@Travis wspomniano przy użyciu istniejącego modelu danych, ale wybór bazy danych może być również ograniczeniem: Oracle?

Nie wiem, czy działa z zewnętrznymi systemami weryfikacji, takimi jak Facebook czy Google.


1

Nie są tak elastyczni, jak wiele osób myśli po szybkim przeczytaniu dokumentów, ale mają swoje miejsce.

Jeśli nie potrzebujesz kontroli nad tokenami użytkownika i potrzebujesz jedynie zbudować niestandardowe / rozszerzone dane użytkownika lub zestaw członkostwa lub musisz pobrać te dane z istniejącego / innego źródła, mają swoje miejsce.

Jeśli chcesz zmienić coś więcej, często lepiej jest wymienić moduł httpmodu, który obsługuje jednego z dostawców uwierzytelniania, wtedy masz pełną kontrolę. Większość osób, z którymi się spotkałem, przełamuje problemy z dostawcami, którzy dokonali złego wyboru dla swojej sytuacji na tym poziomie.

Tak czy inaczej, otrzymasz poprawnie wypełniony plik context.user, który pozwala kontynuować korzystanie z większości funkcji użytkownika opartych na asp.net.


1

To pytanie jest stare, ale dostaję odznaki za jego popularność, więc uważam, że warto udzielić zaktualizowanej odpowiedzi.

„Prosty” dostawca członkostwa Microsoftu w końcu trafił w moje skromne zdanie. Jeśli piszesz coś nowego lub nawet dołączasz do starszej bazy danych z nową aplikacją. Skorzystaj z prostego dostawcy członkostwa. DROGA ŁATWIEJSZY i CZYSTSZY do wdrożenia. Zainstaluj kilka tabel i wskaż dostawcę na swoją listę użytkowników i gotowe.

Ten link pozwoli Ci zacząć lub po prostu google: http://www.mattjcowan.com/funcoding/2012/11/10/simplemembershipprovider-in-mvc4-for-mysql-oracle-and-more-with-llblgen/


prosty dostawca członkostwa jest właśnie taki ... Prosty
hanzolo
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.