C# .NET rejestracja,logowanie,nadawanie praw

0

Witam, to mój pierwszy post na forum, jeżeli odbiega on od panujących tutaj norm to z góry przepraszam. Mam problem do rozwiązania, polega on na dodaniu do istniejącego projektu możliwości logowania, rejestracji oraz nadawania praw. Projekt jest na uczelnię (dopiero uczę się asp .net). Mam stworzoną stronę internetową z bazą danych w sqlexpress. Strona odwzorowuje sklep internetowy. Zastanawiam się w jaki sposób zaimplementować do tego projektu logowanie itp. Wiem, że istnieją już gotowe metody dostarczone przez framework jak np. membership, ale jest ich mnóstwo. I teraz pytanie do was, czego użyć? Potrzebuję czegoś łatwego w zrozumieniu i zaimplementowaniu do projektu. Co polecacie?

0

Okay, ale co do tej pory zrobiles? Bo na stronie www.asp.net masz mnóstwo przykładów jak coś takiego zaimplementować, czytałeś to?

0

Co zrobiłem? Mam już zrobione strony na któych wyświetlam rekordy z bazy danych, możliwość dodawania nowych rekordów itp. Jeśli chodzi o moją część projektu to jest ok, to czego mi brakuje to właśnie sam mechanizm logowania oraz zależnie od roli osoby zalogowanej możliwość wyświetlania jakiejś strony, np. zwykły użytkownik nie może mieć możliwości dodawania danych, czyli nie może mieć dostępu do strony z dodawaniem danych. Odnośnie www.asp.net zaraz to sprawdzę. Ogólnie zacząłem testować membership providera, zobaczę czhy zdołam to pojąć :)

2

Najprościej chyba zaimplementować SimpleMembershipProvider.

0

no niby najprościej
ja zawsze korzystam, bo zapominam z tego linka http://monox.mono-software.com/blog/post/mono/226/Adding-ASP-NET-SimpleMembership-to-an-existing-MVC-4-application/
jednak jak sama nazwa wskazuje jest to na tyle proste rozwiązanie, że pozwala wielu użytkownikom się rejestrującym mieć ten sam adres e-mail.

1

Zaimplementuj SimpleMembershipProvider tak jak przedmówca powiedział i chwal go za to!

Jeżeli jednak nie chcesz tego robić (zakładam że umiesz zrobić kolejne tabele w bazie danych i na nich operować) to możesz zaimplementować swój mechanizm. Po kolei:

  1. Stwórz sobie tabelę User w której będziesz miał username i hasło.
  2. Stwórz stronę logowania: pole username oraz haslo.
  3. W kontrolerze pobierz obecnych użytkowników i sprawdź czy już istnieje taki jak został podany, jeśli także i hasło się zgadza to go "zaloguj" (do tego za chwilę).
  4. Powtórz krok 2 dla rejestracji. A krok 3 to jeśli taki istnieje to zwróć błąd, jeśli nie istnieje to po prostu dodaj nowy rekord do bazy danych (jeszcze możesz sprawdzić czy np. hasła podane się zgadzają ale to już szczegół). Następnie go zaloguj.
  5. W kontrolerach, na funckjach zwracających widoki wstaw odpowiednie atrybuty:
    a) [AllowAnnonymous]
    b) [Authorized]
    (sprawdź czy oby na pewno tak się nazywają.
  6. Sprawdź na stronie www.asp.net w dziale z logowaniem itd. jak wygląda kawałek kodu odpowiedzialny za ustawianie ciasteczka. Dodaj ten kod do swojej funkcji logowania oraz rejestracji w kontrolerze.
  7. Dodaj link Wyloguj tam gdzie chcesz, a w kontrolerze w funkcji Wyloguj usuń ciastko i przekieruj do strony do której niezalogowany ma dostęp.
0

Problem rozwiązany, dziekuję za pomoc wszystkim zaangażowanym. Użyłem membership providera, dość łatwy do ogarnięcia + mnóstwo gotowych kontrolek.

1

Warto wspomnieć że SimpleMembershipProvider jest już zaimplementowany jeśli wybierzesz odpowiedni template. Wystarczy ten mechanizm tylko troche zmodyfikować żeby był bezpieczniejszy:) Ale tabele są gotowe itd.

1 użytkowników online, w tym zalogowanych: 0, gości: 1