2010-08-24 18 views
8

Zawsze trzymałem się z daleka od członkostwa w asp.net, ponieważ wydawało się ono nadęte i (w tym czasie) nieprzydatne. W przypadku asp.net MVC konkretnie, czy ktoś używa alternatywnego rozwiązania do przypisywania ról użytkownikom i przechowywania niektórych informacji dodatkowych dla zalogowanego użytkownika? Jakieś rekomendacje? Czy to szalone, aby po prostu przetasować własne, po prostu wdrażając funkcjonalność, której potrzebujesz?Alternatywy członkostwa ASP.NET

+0

Jeśli potrzebujesz alternatywy, to prawdopodobnie masz kilka powodów ... Czy możesz podzielić się nimi z nami? Czego brakuje w członkostwie asp.net, z którego chcesz skorzystać? –

+3

Nie jestem pewien, jak to jest "nadęty". Jeśli cokolwiek, jest trochę szczupły po stronie ról. – Greg

+0

Możesz dodawać kolumny do tabel generowanych przez aspnet_regsql i działa dobrze. Jeśli chcesz, możesz odwoływać się do tabel w coś podobnego do modelu encji. W ten sposób nadal możesz korzystać z dostawcy członkostwa ASP.NET w zakresie, w jakim działa on dla ciebie, ale możesz również korzystać z dodatkowych informacji, które przechowujesz. – Andrew

Odpowiedz

3

Członkostwo ASP.NET korzysta z modelu dostawcy dla magazynu. SqlMembershipProvider dziedziczy funkcje szyfrowania/hashowania hasłem z abstrakcyjnej klasy MembershipProvider. Ale możesz również odziedziczyć po MembershipProvider i uzyskać tę funkcję w niestandardowym dostawcy, jeśli chcesz.

Jeśli korzystasz z SqlMembershipProvider, otrzymujesz w pełni działającą bazę danych członkostwa z pełnym zarządzaniem hasłami (sprawdzanie, zmiana, resetowanie, nieprawidłowe próby podania hasła) i zarządzanie użytkownikami (CRUD op, blokowanie użytkowników).

Wszystko to na poziomie interfejsu API. Możesz tworzyć dowolne interfejsy użytkownika w stosunku do interfejsu API.

Korzystanie z narzędzia SqlMembershipProvider nie wymaga korzystania z dostawcy ról ani dostawcy profilu ani żadnego innego elementu, a ponadto można wykonywać własne operacje bez wpływu na członkostwo. Przynajmniej zaleciłbym używanie dobrze przetestowanego SqlMembershipProvider jako podstawowego zabezpieczenia dla podstawowych rzeczy.

+0

Myślę, że problem z tym jest, gdy trzeba go przedłużyć. Lub istniejący schemat nie jest zgodny z SqlMembershipProvider db. – Roco72

+0

rozszerzenie SqlMembershipProvider może być problematyczne. Osobiście używam SqlMembershipProvider w aplikacji, która działa głównie na Oracle. Te stoły siedzą w ich własnej niewielkiej bazie danych, nie martwiąc się o główną bazę danych biznesowych i wydaje się, że działa to dobrze dla mnie. – Greg

0

Z powodzeniem wdrożyłem DotNetOpenAuth jako dostawcę członkostwa i roli. Nie jest to pełna implementacja, ale obsługuje najczęstsze scenariusze.

Zapewniają szablony VS, aby zacząć.

Powiązane problemy