2012-03-23 16 views
7

Jestem nowy w ASP.NET MVC. Przełączam się na nią z PHP.Jaki jest najlepszy sposób zarządzania użytkownikami w ASP.NET MVC

W PHP, kiedy tworzyłem stronę zarządzającą użytkownikami, często tworzyłem tabele Użytkownicy i Profile oraz zapisywano w nich dane. W ASP.NET istnieją dostawcy członkostwa i profilu.

Moje pytanie brzmi: jaki jest najlepszy sposób zarządzania użytkownikami w ASP.NET MVC? Czy powinienem tworzyć niestandardowe tabele i logikę, jak w PHP, czy też powinienem tworzyć dostawców niestandardowych?

Wiem, istnieje wiele podobnych tematów dotyczących tego problemu. Jednak żaden z nich nie jest dokładnie tym, czego potrzebuję.

Z góry dziękuję, Mike.

+2

Nie trzeba wymyślać na nowo koła; korzystaj z wbudowanego dostawcy członkostwa. Wszystko, co zrobisz, będzie podatne na błędy i mniej bezpieczne; zwłaszcza jeśli nie znasz platformy .net. Minie trochę czasu, zanim wyhodujesz, co zbudował inżynier Microsoftu. – frenchie

+2

@frenchie Błagam, aby się nie zgodzić. Dostawca członkostwa, podobnie jak wiele innych rzeczy szybkich i brudnych, jest dobry na szybkie i brudne rzeczy (lub dema) i nie jest trudno wymyślić lepsze (dla twoich potrzeb!) Członkostwo. Buduję swojego dostawcę członkostwa zgodnie z moimi potrzebami aplikacyjnymi, a wbudowane członkostwo nie służy właściwie moim potrzebom. Doszłam do tego wniosku kilka lat temu i nie pamiętam wszystkich szczegółów, ale pamiętam, że nienawidzę używać identyfikatorów jako identyfikatora użytkownika. – MikeSW

Odpowiedz

2

prawdopodobnie powinien powiedzieć, nie ma najlepszym sposobem. Najlepszy jest niejednoznaczny.

Powiedziałbym, że istnieją trzy ogólne typy sposobów wykonywania użytkowników i ról z serwerem SQL (wspominam o tym, ponieważ wspomniałeś o tabelach).

Po pierwsze: Użyj wbudowanego programu ASP.NET (formularze internetowe/agnostyka mvc) SqlMembership Provider. Zawiera większość funkcji potrzebnych do zarządzania użytkownikami. Jest to najprawdopodobniej najszybsze do wdrożenia, ale najmniej rozszerzalne. Byłoby to wysoce zalecane.

Po drugie: Zbuduj własną [dostawcę członkostwa], postępuj zgodnie z wzorcem usługodawcy wzór, ale wprowadzić własną logikę z SQL do aplikacji. Budowanie własnej oferty może być dość długim procesem, ale nadal masz wszystkie fajne funkcje i można z nich korzystać w innych projektach, ponieważ jest to ich własny dostawca i nie jest związany z aplikacją.

Po trzecie: Zbuduj swoją własną logikę od zera. Nie polecałbym tego, chyba że planujesz zbudować go jak niezależną aplikację.

+0

Dziękuję, to także dobra opinia, która pomogła mi w podjęciu decyzji. – michy04

2

Zgadzam się z Oscarem i Frenchie - nie wymyślaj ponownie koła. Dostawcy członkostwa ASP.NET powinni zapewnić dobry start. Jednakże, jeśli jesteś fanem TDD, może się okazać, że będziesz musiał hermetyzować implementację dostawcy członkostwa wewnątrz klasy, którą możesz kontrolować, abyś mógł poradzić sobie z kpiną. Umowa z dostawcą członkostwa jest dość ogromna i ściśle powiązana, a dzięki doświadczeniu dowiedziałem się, że ostatecznie używasz tylko 30-40% tej bestii. Stwórz własną umowę i wykorzystaj ją do interakcji z dostawcą członkostwa. Podziękujesz sobie później.

Powodzenia!

Powiązane problemy