Tworzę niestandardową usługę uwierzytelniania (potrzebuję więcej niż pozwala na to domyślna wartość). Nie mogę zdecydować, czy mam rozszerzyć usługę Członkostwo Użytkownik i wdrożyć odpowiednie interfejsy lub całkowicie rozwinąć własne. Czy jest jakaś korzyść z wyrzucenia własnych lub jakieś pułapki, o których powinienem wiedzieć, rozszerzając domyślny mechanizm?
Odpowiedzi:
2 dla odpowiedzi № 1Jak daleko jesteś od wartości domyślnych?
Jeśli twoje potrzeby są dalekie od tego, co MembershipProvider
daje ci, proponuję iść z własnym. Osobiście nie spotkałem aplikacji, która łączyła się z istniejącym magazynem danych. Dodalibyśmy do niej kolejną aplikację. Stąd też MembershipProvider
znacznie ponad zaprojektowane. Uwierzytelnianie / autoryzacja zwykle również nie zajmuje zbyt wiele czasu, a Ty je kontrolujesz całkowicie. Jeśli zajmuje to dużo czasu, prawdopodobnie jest to dalekie od tego MembershipProvider
daje Ci.
Ale jeśli twoje wymagania są bliskie MembershipProvider
, powinieneś to rozważyć. Albo tak, jak jest, albo zacznij z niego czerpać samodzielnie. Ale strzeż się. Może to zająć więcej czasu niż dostarczenie własnego, ponieważ będziesz musiał nauczyć się tego na wskroś.
Wymagania dotyczące zarządzania bezpieczeństwem
Jeśli korzystasz z MembershipProvider (lub własnegodziedziczona klasa) zyskujesz także integrację z IIS, dzięki czemu łatwo jest zarządzać ustawieniami bezpieczeństwa aplikacji. Jeśli stworzysz własne, będziesz musiał również zapewnić interfejs do tego, co może zająć sporo czasu.
0 dla odpowiedzi nr 2
Zaimplementuj klasę abstrakcyjną MembershipProvider. Mam implementację z XML jako magazyn danych tutaj, jeśli jej potrzebujesz.
http://msdn.microsoft.com/en-us/library/system.web.security.membershipprovider.aspx?queryresult=true
0 dla odpowiedzi № 3
Pisanie własnego dostawcy zawsze jest dobrą zabawą, ale zależy to od potrzeb bezpieczeństwa tworzonej aplikacji.
W większości przypadków musiałem wdrożyć własnego dostawcę.
- Używanie orm, takiego jak nhibernate.
- Żadna baza danych nie jest tak wymagana, aby używać płaskich plików xml.
- Musiałem zbudować system, który wymagałby szerszego systemu uprawnień do ról niż zapewniane przez klasy członkostwa.
Dobrze, że możesz przełączać się między różnymi dostawcami, jeśli potrzebujesz.